python神经网络学习使用Keras进行简单分类_第1页
python神经网络学习使用Keras进行简单分类_第2页
python神经网络学习使用Keras进行简单分类_第3页
python神经网络学习使用Keras进行简单分类_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第python神经网络学习使用Keras进行简单分类目录学习前言Keras中分类的重要函数1、np_utils.to_categorical2、Activation3、metrics=[accuracy]全部代码

学习前言

上一篇讲了如何构建回归算法,这一次将怎么进行简单分类。

Keras中分类的重要函数

1、np_utils.to_categorical

np_utils.to_categorical用于将标签转化为形如(nb_samples,nb_classes)的二值序列。

假设num_classes=10。

如将[1,2,3,4]转化成:

[[0,1,0,0,0,0,0,0]

[0,0,1,0,0,0,0,0]

[0,0,0,1,0,0,0,0]

[0,0,0,0,1,0,0,0]]

这样的形态。

如将Y_train转化为二值序列,可以用如下方式:

Y_train=np_utils.to_categorical(Y_train,num_classes=10)

2、Activation

Activation是激活函数,一般在每一层的输出使用。

当我们使用Sequential模型构建函数的时候,只需要在每一层Dense后面添加Activation就可以了。

Sequential函数也支持直接在参数中完成所有层的构建,使用方法如下。

model=Sequential([

Dense(32,input_dim=784),

Activation("relu"),

Dense(10),

Activation("softmax")

其中两次Activation分别使用了relu函数和softmax函数。

3、metrics=[accuracy]

在pile中添加metrics=[accuracy]表示需要计算分类精确度,具体使用方式如下:

pile(

loss='categorical_crossentropy',

optimizer=rmsprop,

metrics=['accuracy']

全部代码

这是一个简单的仅含有一个隐含层的神经网络,用于完成手写体识别。在本例中,使用的优化器是RMSprop,具体可以使用的优化器可以参照Keras中文文档。

importnumpyasnp

fromkeras.modelsimportSequential

fromkeras.layersimportDense,Activation##全连接层

fromkeras.datasetsimportmnist

fromkeras.utilsimportnp_utils

fromkeras.optimizersimportRMSprop

#获取训练集

(X_train,Y_train),(X_test,Y_test)=mnist.load_data()

#首先进行标准化

X_train=X_train.reshape(X_train.shape[0],-1)/255

X_test=X_test.reshape(X_test.shape[0],-1)/255

#计算categorical_crossentropy需要对分类结果进行categorical

#即需要将标签转化为形如(nb_samples,nb_classes)的二值序列

Y_train=np_utils.to_categorical(Y_train,num_classes=10)

Y_test=np_utils.to_categorical(Y_test,num_classes=10)

#构建模型

model=Sequential([

Dense(32,input_dim=784),

Activation("relu"),

Dense(10),

Activation("softmax")

rmsprop=RMSprop(lr=0.001,rho=0.9,epsilon=1e-08,decay=0)

##compile

pile(loss='categorical_crossentropy',optimizer=rmsprop,metrics=['accuracy'])

print("\ntraining")

cost=model.fit(X_train,Y_train,nb_epoch=2,batch_size=32)

print("\nTest")

cost,accuracy=model.evaluate(X_test,Y_test)

##W,b=model.layers[0].get_weights()

print("accuracy:",accuracy)

实验结果为:

Epoch1/2

60000/60000[==============================]-12s202us/step-loss:0.3512-acc:0.9022

Epoch2/2

60000/60000[==============================]-11s183us/step-loss:0.2037-acc:0.9419

10000/10000[============

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论