|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 jerryxjr1220 于 2017-3-26 21:49 编辑
之前在python小练习(062)和(063)中分别简单介绍了怎样搭建简单的神经网络,已经基础的神经网络是如何运作的,并且介绍了google的开源项目tensorflow的基本使用方法。
今天的小练习作为前2篇的提高篇,我介绍一个新的python扩展系统keras,以及如何用keras快速搭建神经网络。
这个是keras的官方中文版的地址:https://keras-cn.readthedocs.io/en/latest/
Keras:基于Theano和TensorFlow的深度学习库
Keras是一个高层神经网络库,Keras由纯Python编写而成并基Tensorflow或Theano。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择Keras:
简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性)
支持CNN和RNN,或二者的结合
支持任意的链接方案(包括多输入和多输出训练)
无缝CPU和GPU切换
Keras适用的Python版本是:Python 2.7-3.5
Keras的设计原则是
模块性:模型可理解为一个独立的序列或图,完全可配置的模块以最少的代价自由组合在一起。具体而言,网络层、损失函数、优化器、初始化策略、激活函数、正则化方法都是独立的模块,你可以使用它们来构建自己的模型。
极简主义:每个模块都应该尽量的简洁。每一段代码都应该在初次阅读时都显得直观易懂。没有黑魔法,因为它将给迭代和创新带来麻烦。
易扩展性:添加新模块超级简单的容易,只需要仿照现有的模块编写新的类或函数即可。创建新模块的便利性使得Keras更适合于先进的研究工作。
与Python协作:Keras没有单独的模型配置文件类型(作为对比,caffe有),模型由python代码描述,使其更紧凑和更易debug,并提供了扩展的便利性。
从官方介绍可以看到keras其实后台调用的也是tensorflow(或者theano)的神经网络,只是keras更模块化,对于我们普通使用者来说,搭建神经网络更简单,不需要很多代码就能完成组建。
同样用之前小练习类似的例子,来看看keras是怎么搭建的吧。
题目:
有一组输入X(200个数据),一组输出Y(同样200个数据), Y = 0.5 * X + 2。 为了增加训练难度,我故意增加了一些随机数,使得输出值有些波动。然后通过keras的机器学习,看看能否准确估计出我们预设的0.5和2的参数。
开始:
我们看到一个是0.479,一个是2.002,非常接近0.5和2的(注意:原始数据中我故意增加了随机扰动)
这就是强大的keras神经网络,只有10来行代码就能快速帮助我们组建神经网络。
后面,我还将陆续介绍keras在其他神经网络运用方面的例子,比如自动图像识别等等,敬请期待! |
|