机器学习机器学习与数据挖掘

keras入门指导

2017-06-23  本文已影响157人  CV_lsc
在深度学习蓬勃发展的今天,越来越多的深度学习框架被提出来,谷歌的Tensorflow ,微软的CNTK,等等。阅读文献时,如果我们想重现论文中的方法,但是又碍于没有学习过论文中提到的深度学习框架,那么为了节约研究的时间,使用keras会是你的一个不错选择。keras是由纯Python编写的高级神经网络API,它的后台支持tensorflow,theano或者CNTK。利用keras,我们能很轻松的搭建深度学习模型。
虽然keras的官方文档将已经把各部分讲得很详细,但是当真正使用keras搭建模型时,还是会遇到参数不知道如何设置的问题。接下来,我将会用MLP对mnist数据集进行分类的例子,对代码进行讲解,希望能给学习keras的同学带来帮助。
MLP(多层神经网络)
1 model = Sequential()     #在代码中注释不利于读者阅读,所以我统一在代码后面讲解
2 model.add(Dense(512, activation='relu', input_shape=(784,)))
3 model.add(Dropout(0.2))
4 model.add(Dense(512, activation='relu'))
5 model.add(Dropout(0.2))
6 model.add(Dense(10, activation='softmax'))
7 model.summary()
8 model.compile(loss='categorical_crossentropy',
                optimizer=RMSprop(),
                metrics=['accuracy'])
9 history = model.fit(x_train, y_train,
                      batch_size=128,
                      epochs=20,
                      validation_split=0.2)
10 score = model.evaluate(x_test, y_test, verbose=0)
1 在keras源代码中,Sequential其实是个类,model=Sequntial() ,就是定义了一个Squntial对象,有这行代码,我们就可以开始自上而下的搭建神经网络层。
2 Squentail类中,有add方法(类中函数的叫法),我们通过它添加各种神经网络层,在这行代码中,搭建的是Dense层也就是全连接层。Dense层中,有许多参数,但是大部分都设定了默认值,所以只要关注一下units,activation,input_shape即可。具体来讲解一下本行设置,units=512就是设置这一层的神经元的数量(这个数量的设置大家可以自己调节),activation='relu'就是设置激活函数为relu(当然还可以设置许多其他的激活函数),大家注意在搭建第一层神经网络层的时候一定要添加input_shape,之后的网络层不需要添加。
3 Dropout(0.2),Dropout层它的作用大家可以想象成生物神经元与神经元连线的断裂,0.2就是有百分之20的概率两个神经元之间失去联系,用于处理数据过拟合的情况。
4 继续搭建Dense层,这层有512个神经元,激活函数设为relu。大家可以看到,已经沒有添加input_shape,keras内部已经自动计算好了,不用我们操心。
5 继续加Dropout层
6 最后一层,10个神经元用于判定手写图像的数字,激活函数为softmax。
7 这行是用来统计我们搭建的神经网络模型的相关参数。当我们在运行程序的时候,会在编译器上显示,大家可以试一试。
8 compile(编译),设置损失函数loss,这里设置的是交叉熵;设置优化算法optmimizer,这里设置的是RMSprop;设置性能评估metrics,通常设置为accuracy。
9 前面的代码相当于把水管搭好了,现在开始通水,fit函数里面需要设置的参数有:input data (输入数据);lables (输入数据标签);batch_size(做一次梯度下降所使用的数据量) ;epochs(使用总训练集的次数);validation_split(抽取训练集0至1比例的数据作为验证集,这里推荐设置为0.2)
10 评估函数,加入测试集即可。(verbose是用来显示记录的,0为不显示,1为显示。)
好,代码已经讲完了,最后我还想谈一谈我学习keras的小心得。
好吧,如果喜欢我写的,欢迎大家点赞和评论,大家还要什么不懂的可以留言,我会在下次的博客中给大家讲解。
上一篇下一篇

猜你喜欢

热点阅读