keras入门指导

在深度学习蓬勃发展的今天,越来越多的深度学习框架被提出来,谷歌的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的小心得。
  • 机器学习的基本原理还是需要搞懂的,不然你不知道该如何改进你的神经网络模型。
  • 深度学习的算法需要搞懂,不然你不知道该如何搭建模型。
  • 要勇于尝试,必须要把代码跑起来,不能看看例子就算了,这样永远无法提高
  • 多做总结,我觉得写博客是一个做总结的好方法,既总结了知识点,又能帮助大家一起提高。
好吧,如果喜欢我写的,欢迎大家点赞和评论,大家还要什么不懂的可以留言,我会在下次的博客中给大家讲解。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容