七月算法深度学习 第三期 学习笔记-第四节 深度学习框架与应用
2017-07-10 10:41
316 查看
一、Caffe:图像的一般问题Caffe很方便,是目前产品化最多的库
1.来源于Berkeley的开源框架
根据Linux版本网上找寻相应配置方式,不推荐windows上安装
2.高效、一般的训练无需手写大量代码
① Resize图片,转换存储格式(LMDB/LevelDB)
② 定义网络结构(编辑prototxt)
③ 定义solver(编辑另一个prototxt)
④ 一行命令开始训练(可以基于已有的权重赋值)
3.有python和mathlab的接口
4.对于卷积神经网络的训练和fine-tuning非常方便
5. Caffe使用方法
① 转化格式
② 定义层次结构
③ 定义solver
④ 训练
6.模型库首选:model zoo-----适用AlexNet、VGG、GoogLeNet、ResNet
7.关于fine-tuning:如果层次不变,只需修改输入输出;如果层次改变,添加/删减层次
8.fine-tuning技巧/注意点:
①优先学习权放在新加层
Ø每一层都有控制学习率的参数: blobs_lr
Ø 一般会把前面层学习率调低,最后新加层调高
Ø 你甚至可以freeze前面的层次不动
Ø一般fine-tuning的前期loss下降非常快,中间有个瓶颈期,要有耐心
② 在solver处调整学习率
Ø调低solver处的学习率(1/10, 1/100)
Ø记住存储一下中间结果,以免出现意外
9. Pycaffe:
①Import caffe加载库
Ø caffe.net是加载/运行/训练模型的主类(接口)
Ø caffe.Classifier和caffe.Detector是针对识别/检测的接口
Ø caffe.SGDSolver最优化
Ø caffe.io负责输入输出和预处理
Ø caffe.draw可以画出网络结构图
② 加载所需库
③ 选择GPU或者CPU
④ 定义网络结构
⑤ 载入solver
⑥ Solver训练
⑦ 做完前向运算取出某层输出
二、Tensorflow:社区发达资源多
1. 概念------在Tensorflow里:
o 使用张量(tensor)表示数据.
o 使用图(graph)来表示计算任务.
o 在被称之为会话(Session)的上下文 (context)中执行图.
o 通过变量 (Variable)维护状态.
o 使用feed和fetch可以为任意的操作(arbitrary operation)赋值或者从其中获取数据.
2.关于张量(Tensor)
o 张量可以用多维数组来表示
o Numpy vs Tensorflow
o Tensorflow需要显示地输出tensor
3. Tensorflow的“计算图”
o Tensorflow一般可分为2部分:1)构造部分,包含计算流图 2)执行部分,通过session来执行图中的计算
o 构建图:1)创建源节点(source op) 2)源节点输出传递给其他节点(op)做运算
o TF默认图: 1)TensorFlow Python库有一个默认图(default graph) 2)节点构造器(op构造器)可以增加节点
3. Tensorflow的“会话”
4. Tensorflow的“变量”
5. 关于多GPU/CPU
6. TensorBoard可视化
三、facebook的Pytorch + caffe2:研究+产品应用组合
高速计算、自动求导
MxNet:对显存利用率高
1.来源于Berkeley的开源框架
根据Linux版本网上找寻相应配置方式,不推荐windows上安装
2.高效、一般的训练无需手写大量代码
① Resize图片,转换存储格式(LMDB/LevelDB)
② 定义网络结构(编辑prototxt)
③ 定义solver(编辑另一个prototxt)
④ 一行命令开始训练(可以基于已有的权重赋值)
3.有python和mathlab的接口
4.对于卷积神经网络的训练和fine-tuning非常方便
5. Caffe使用方法
① 转化格式
② 定义层次结构
③ 定义solver
④ 训练
6.模型库首选:model zoo-----适用AlexNet、VGG、GoogLeNet、ResNet
7.关于fine-tuning:如果层次不变,只需修改输入输出;如果层次改变,添加/删减层次
8.fine-tuning技巧/注意点:
①优先学习权放在新加层
Ø每一层都有控制学习率的参数: blobs_lr
Ø 一般会把前面层学习率调低,最后新加层调高
Ø 你甚至可以freeze前面的层次不动
Ø一般fine-tuning的前期loss下降非常快,中间有个瓶颈期,要有耐心
② 在solver处调整学习率
Ø调低solver处的学习率(1/10, 1/100)
Ø记住存储一下中间结果,以免出现意外
9. Pycaffe:
①Import caffe加载库
Ø caffe.net是加载/运行/训练模型的主类(接口)
Ø caffe.Classifier和caffe.Detector是针对识别/检测的接口
Ø caffe.SGDSolver最优化
Ø caffe.io负责输入输出和预处理
Ø caffe.draw可以画出网络结构图
② 加载所需库
③ 选择GPU或者CPU
④ 定义网络结构
⑤ 载入solver
⑥ Solver训练
⑦ 做完前向运算取出某层输出
二、Tensorflow:社区发达资源多
1. 概念------在Tensorflow里:
o 使用张量(tensor)表示数据.
o 使用图(graph)来表示计算任务.
o 在被称之为会话(Session)的上下文 (context)中执行图.
o 通过变量 (Variable)维护状态.
o 使用feed和fetch可以为任意的操作(arbitrary operation)赋值或者从其中获取数据.
2.关于张量(Tensor)
o 张量可以用多维数组来表示
o Numpy vs Tensorflow
o Tensorflow需要显示地输出tensor
3. Tensorflow的“计算图”
o Tensorflow一般可分为2部分:1)构造部分,包含计算流图 2)执行部分,通过session来执行图中的计算
o 构建图:1)创建源节点(source op) 2)源节点输出传递给其他节点(op)做运算
o TF默认图: 1)TensorFlow Python库有一个默认图(default graph) 2)节点构造器(op构造器)可以增加节点
3. Tensorflow的“会话”
4. Tensorflow的“变量”
5. 关于多GPU/CPU
6. TensorBoard可视化
三、facebook的Pytorch + caffe2:研究+产品应用组合
高速计算、自动求导
MxNet:对显存利用率高
相关文章推荐
- 七月算法深度学习 第三期 学习笔记-第八节 循环神经网络与相关应用
- 七月算法深度学习 第三期 学习笔记-第十节 深度学习与迁移学习
- 七月算法深度学习笔记5--CNN训练注意事项与框架使用
- 七月算法深度学习 第三期 学习笔记-第五节 生成对抗网络GAN
- 七月算法深度学习 第三期 学习笔记-第一节 数学基础
- 七月算法深度学习 第三期 学习笔记-第三节 卷积神经网络与典型结构
- 七月算法深度学习笔记4 -- CNN与常用框架
- 七月算法深度学习 第三期 学习笔记-第九节 强化学习与Deep Q-Network
- 七月算法深度学习 第三期 学习笔记-第七节 循环神经网络与自然语言处理
- 七月算法深度学习 第三期 学习笔记-第二节 DNN与混合网络
- 七月算法深度学习 第三期 学习笔记-第六节 图像风格转换
- 七月算法(julyedu.com)5 月深度学习班学习笔记-第一节数学基础
- 七月算法深度学习笔记6--CNN推展案例:图像检测、NeuralStyle
- 七月算法深度学习笔记7--RNN
- 深度学习word2vec笔记之基础篇算法篇应用篇--写的非常到位
- 深度学习在图像识别中的应用--学习笔记5
- 【BDTC 2015】深度学习分论坛:DL的图像识别、语音识别应用进展及MxNet开源框架设计
- [计算机视觉:算法与应用]学习笔记一:图像形成
- 【算法学习笔记】53.单调队列的简单应用 SJTU OJ 1034 二哥的金链
- 深度学习在图像识别中的应用--学习笔记6