作家
登录

小白学CNN以及Keras的速成

作者: 来源: 2017-08-25 15:49:31 阅读 我要评论

【51CTO晃荡】8.26 带你与清华大年夜学、搜狗、京东大年夜咖们一路商量基于算法的IT运维实践


小白学CNN以及Keras的速成

一、为何要用Keras

如今在深度进修大年夜火的时刻,第三方对象也层出不穷,比较出名的有Tensorflow,Caffe,Theano,MXNet,在如斯多的第三方框架中频繁的改换无疑是很低效的,只要你可以或许好好控制个一一个框架,熟悉其道理,那么之后因为各类请求你想要改换框架也是很轻易的。

那么sherlock用的是哪个框架呢?sherlock应用的是Google的开源框架Tensorflow,因为Google开源了tensorflow之后其社区异常活泼,并且版本更新也异常稳定,所以我就选择了这个框架。对于框架之争,在知乎上已经有很多人在撕逼了,这个就比如哪种编程说话好这个问题一样。对于我们来讲,选择一个稳定的框架,好好的进修deep learning才是重中之重,对于哪种框架更好的问题,我们学好之后天然有本身的看法,所以前期切忌在刷知乎听完大年夜神撕逼之后频繁改换框架。

对于Tensorflow的安装,以及CPU和GPU版本,各类体系的安装网上已经有很多人具体的写过攻略了,可以本身去网上搜一搜,很轻易就可以安装成功。

选择了Tensorflow之后,我们就可以高兴的开端我们的深度进修之旅了。去Tensorflow的中文社区,可以看到有一些新手教程,网上也有很多进修材料,推荐看看stanford大年夜学cs224d的课件,http://cs224d.stanford.edu/lectures/CS224d-Lecture7.pdf, 很具体的介绍了tensorflow。然后你就可以写tensorflow的法度榜样了。固然说tensorflow已经是一个封装好的框架,然则你发明你写一个简单的神经收集也须要很多行才能够写完,这个时刻,就有很多的第三方才架来赞助你写收集,也就是说你用tensorflow要写10行,第三方才架帮你封装了一个函数,就是把这10行集合在这个函数琅绫擎,那么你用1行,传入雷同的参数,就可以或许达到10行雷同的效不雅,如斯简便并且节约时光,可以赞助很快的实现我们的设法主意。

总结

下面就给一个简单的例子,来看一看Keras到底有多简单。

  1. from keras.models import Sequential 
  2.  
  3. model = Sequential()  
  1. from keras.layers import Dense, Activation 
  2.  
  3. model.add(Dense(units=64, input_dim=100)) 
  4.  
  5. model.add(Activation('relu')) 
  6.  
  7. model.add(Dense(units=10)) 
  8.  
  9. model.add(Activation('softmax'))  

可以看到参加层很简单,只须要写.add,后面是要加的层的类型。

  1. model.compile(loss='categorical_crossentropy'
  2.  
  3. optimizer='sgd'
  4.  
  5. metrics=['accuracy'])  

一旦你写好了收集之后,就可以用compile编译全部收集,看参数设置有没有问题

惹人sequential,这个就是一个空的收集构造,并且这个构造是一个次序的序列,所以叫Sequential,Keras琅绫擎还有一些其他的收集构造。

  1. model.compile(loss=keras.losses.categorical_crossentropy, 
  2.  
  3. optimizer=keras.optimizers.SGD(lr=0.01,momentum=0.9,nesterov=True))  
  1. model.fit(x_train,y_train,epochs=5,batch_size=32) 

这个就像scikit-learn一样练习模型。

  1. loss_and_metrics=model.evaluate(x_test,y_test,batch_size=128) 

这个就是评估练习结不雅。

  1. classes=model.predict(x_test,batch_size=128) 

或者是经由过程predict进行猜测。

你也可以自定义个中的优化函数,就像膳绫擎如许,’sgd’是Keras已经写好了一些默认参数的优化函数,你可以本身从新定义参数,获得一个优化函数。

看了膳绫擎的代码,信赖很多熟悉scikit-learn的同窗都很亲切,因为确切很简便,跟scikit-learn也有着类似的语法。

在懂得CNN之前,我们有须要先懂得一下什么是神经收集,如许才能开端懂得更高等的卷积神经收集。

 1/8    1 2 3 4 5 6 下一页 尾页

  推荐阅读

  MySQL高可用数据库内核深度优化的四重定制

【51CTO晃荡】8.26 带你与清华大年夜学、搜狗、京东大年夜咖们一路商量基于算法的IT运维实践 一、UDB高可用数据库架构 UDB以虚拟IP、HAProxy、单节点UDB数据库搭建双节点高可用架构:>>>详细阅读


本文标题:小白学CNN以及Keras的速成

地址:http://www.17bianji.com/lsqh/36937.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)