您的位置:首页 > 理论基础 > 计算机网络

七月算法深度学习 第三期 学习笔记-第四节 深度学习框架与应用

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:对显存利用率高
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐