tensorflow学习
一、TensorFlow简介
TensorFlow框架是目前主流的卷积神经网络开源框架之一。由Google Brain团队开发,对卷积神经网络模型进行构建和训练。
Tensor Flow也是深度学习的一个基础类库,可以用于直接创建深度学习的模型,或者使用**TensorFlow的封装(如Keras)**来实现深度学习的模型。
二、Keras简介
Keras是一个高级神经网络API(开放源码的高级深度学习程序库),使用python编程。使用TensorFlow、Theano及CNTK作为后端。(基于python的深度学习库)
Keras 兼容的 Python 版本: Python 2.7-3.6。
Keras的中文文档(官方)
1、keras的设计原则
- 用户友好:提供一致而简洁的API,极大地减少一般应用下用户的工作量,同时,keras提供清晰和具有实践意义的bug反馈机制。
- 模块性:网络层,损失函数,优化器,初始策略,激活函数,正则化方法都是独立的模块。
- 易扩展性:添加新模块容易,只需要仿照现有的模块编写新的类或函数。
2、keras的工作方式
keras是一个模型即的深度学习链接库,keras只处理模型的建立、训练、预测等功能。深度学习的底层运行,如张量的运算,keras必须配合后端引擎进行运算。目前keras提供了两种 后端引擎:Theano和TensorFlow。
kreas会把底层操作细节转化位Theano和TensorFlow相对指令。
3、keras深度学习链接库的特色
- 简单快速的建立原型prototyping:keras具备友好的用户界面、模块化设计、可扩充性。
- 已经内建各种类神经网络层级,例如卷积层CNN , RNN,可以帮助我们快速建立神经网络模型。
- 通过后端引擎Theano和TensorFlow,可以在CPU 与GPU上运行。
- 以keras开发的程序代码更简洁,可读性更高,更容易维护,更具有生产力。
- keras的说明文件非常齐全,官网上提供的范例也非常浅显易懂。
4、使用Keras建立多层感知器
Keras大致建立一个简单的多层感知器很简单,具体步骤如下。
1、建立Sequential模型
Sequential模型是多个神经网络层的线性堆叠。可以想象Sequential模型是一个蛋糕架,接下来可以加入一层一层的蛋糕。
2、加入“输入层”与“隐藏层”到模型中
Keras已经内建各种神经网络层(例如Dense层、Conv2d层等),只要在之前建立的模型上加入我们选择的神经网络层就可以了(就好像在“蛋糕架”加入“蛋糕层”一样简单)。
3、加入“输出层”到模型
加入输出层到模型中,就好像再加入一层蛋糕。
以上基本就完成了多层感知器模型的建立。
三、keras和TensorFlow
TensorFlow功能强大,执行效率高,支持各种平台,然而属于低级的深度学习链接库,学习门槛高。keras是高级的深度学习链接库,对初学者的学习门槛低,可以很容易的建立深度学习模型,并且进行训练、预测。TensorFlow需要自行设计张量(矩阵)的运算,做很多底层操作。(简单说,Keras比TensorFlow更高级,使用起来更方便简单)