深度学习框架
·可以非常轻松的构建和使用一个庞大的计算图
·自动计算梯度信息
Numpy只能运行在CPU上。
深度框架的目标是:让你在前向传播时的代码编写看起来和Numpy非常近似,但是又能在GPU上运行,自动计算梯度。
TensorFlow
首先用一段代码构建计算图即建立图模型
创建numpy数组,填充占位符,通常tensorFlow从numpy数组接受数据
调用sess.run运行计算图的运算
得到Numpy数据
将权重定义为变量,变量可以存在计算图中,因此创建变量代替占位符
在图中添加一个仿制节点
Caffe
预存在二进制文件,只需要修改一些配置,不需要修改任何代码。
1. 转换数据
2. 定义网络(编辑prototxt)
3. 定义solver(编辑prototxt)
4. 训练(使用预训练权重)(运行脚本)
步骤一:转换数据
将数据转为HDF5或者LMDB格式或者将图像文件夹或文本文件夹转换成可以进入caffe的脚本。
步骤二:定义网络(prototxt)
定义计算图架构,不需要写代码,修改prototxt文件设计计算图的结构。
缺点:对大型网络不友好
步骤三:设置优化器对象
步骤四:训练
caffe模型库
caffe2使用静态图,就想TensorFlow,和caffe一样,内核是C++,有python接口。不同之处,不需要写python脚本来生产prototxt文件,可以在python中定义自己的计算图接口,也可以转换为prototxt文件