深度学习_21天实战Caffe.pdf
- 原
深度学习21天实战caffe学习笔记《1:深度学习的过往》
- 原
深度学习21天实战实战caffe学习笔记《5 : Mnist手写体识别案例》
- 原
深度学习21天实战caffe学习笔记《6 : Caffe代码梳理》
- 原
深度学习21天实战caffe学习笔记《7 :Caffe数据结构》
- 原
深度学习21天实战caffe学习笔记《8:Caffe I/O模块》
- 原
深度学习21天实战caffe学习笔记《9:Caffe 模型》
- 原
深度学习21天实战实战caffe学习笔记<10:Caffe前向传播>
- 原
深度学习21天实战实战caffe学习笔记<11:Caffe 反向传播>
- 原
深度学习21天实战caffe学习笔记《12:Caffe 最优化求解过程》
- 原
深度学习21天实战caffe学习笔记《2 :深度学习工具》
- 原
深度学习21天实战caffe学习笔记《0 : caffe包解析》
- 原
深度学习21天实战caffe学习笔记《3 :准备Caffe环境》
- 原
深度学习21天实战caffe学习笔记《4 : Caffe依赖包解析》
- 原
Caffe安装过程中相关问题
- 原
caffe中的学习率的衰减机制
- 原
深度学习21天实战caffe学习笔记《13:Caffe 实用工具》
- 原
深度学习21天实战实战caffe学习笔记《14:Caffe可视化方法》
- 原
深度学习21天实战caffe学习笔记《15:Caffe计算加速》
- 原
深度学习21天实战caffe学习笔记《16:Caffe迁移和部署》
- 原
深度学习21天实战caffe学习笔记《17:学习资源》
按书上的进程今天应该就是新生了~全然木有学完tensorflow的激动,不过呢~~应该找个项目虐虐自己了~ 以下是资源哦~从书上扒下来的 ~~#~#**
-
学习:Ubuntu14.04编译caffe问题记录
- 原
Caffe之prototxt
- 原
深度学习21天实战实战caffe学习<查看机器已经安装的环境>
- 转
【Caffe安装】caffe安装系列——史上最详细的安装步骤
第五章
第六章
为什么使用 LMDB、LEVELDB —— 1)统一格式,简化数据读取层的实现;2)提高磁盘IO利用率;
熟悉模型描述文件中的参数;
caffe.bin 参数:
usage:caffe<command><args> # 这个是告诉你使用格式, caffe 后接上 一个command命令,后面再接其他参数
commands: #你能选择的命令有一下这么几种 train #训练或者微调一个模型 test #对一个模型打分 device—query #显示GPU诊断信息 time #评估模型执行时间
Flags form tools/caffe.cpp #其他一些参数的总览 -gpu (可选;给定时运行GPU模式,用’ , ’分隔开不同的gpu, ‘-gpu all’表示运行在所有可用的gpu设备上,此时有效训练批量大小就是gpu设备数乘以batch_size) -iterations (循环迭代次数,默认为50) -level (可选;定义网络水平,也是NetState中的一个,但我也还不清楚这个的作用) -model (指定模型定义文本文件名,xxx.prototxt) -phase (可选;网络是处于TEST还是TRAIN阶段,当你使用command中time命令时,再指定phase就可以选择计算TEST或者TRAIN的耗时) -sighup_effect (可选;当收到SIGHUP信号时要采取的动作,可选项:snapshot、stop、none,默认为snapshot,即打印快照) -sigint_effect (可选;当收到当收到SIGINT信号时要采取的动作,可选项同上,默认stop) -snapshot (可选,恢复训练时指定上次中止的快照,就是比如训练到一般按Ctrl+C终止训练(Linux中这个Ctrl+C不是copy,而是终止当前操作),就会得到一个solverstate 文件,下次恢复训练时就可以指定这个) -solver ( 指定sovler.prototxt文件,在train的时候需要这个参数) -stage (可选;也是NetState中的一个,但我也还不清楚这个的作用) -weights ( 指定用于微调的预训练权值,也即 训练后得到的**.caffemodel文件,不可与snapshot同时出现) |
第七章
需要有 LK 个卷积核实现通道数目的转换;
data 指针(只读)
diff 指针(读写)——求导迭代用?
第八章
Caffe 数据结构
caffe中数据结构主要包括caffe::Net,caffe::Layer,caffe::Solver三个主要大类。下面就这三个主要的数据结构做一下总结。 1,caffe:Net:这个数据结构用来表示整个网络,这个数据结构里包含了很多重要的变量。 vector< shared_ptr< Layer< Dtype > > > layers_变量存储的是每层layer结构体的指针。 vector< shared_ptr< Blob< Dtype > > > blobs_变量存储每层网络的训练参数,通常有blobs_[0]存储该层网络的weight,blobs_[1]存储该层网络的bias。不管是weight还是bias都是具有blob结构,关于blob结构的数据存储具体是什么样的,以后会有总结。 (1)caffe::BaseConvolutionLayer:这个存储的是convlution层的所需要的参数 int bottom_dim_变量存储的是输入数据的宽度。 int height_,int width_表示pooling层输入的图像的尺寸。 int M_表示一个batch中的样本数目,即input矩阵的行数目。 vector< Blob< Dtype > * > softmax_bottom_vec_表示该层的输入,数据宽度为10。 int outer_num_对应一个batch中的样本数量。 |
在某社区看到的回答,觉得不错就转过来了:http://caffecn.cn/?/question/123 Caffe从四个层次来理解:Blob,Layer,Net,Solver。 1、Blob Caffe的基本数据结构,用四维矩阵Batch*Channel*Height*Width表示,存储了包括神经元的 激活值、参数、以及相应的梯度(dW,db)。其中包含有cpu_data、gpu_data、cpu_diff、gpu_diff、 mutable_cpu_data、mutable_gpu_data、mutable_cpu_diff、mutable_gpu_diff这一堆很像的东西, 分别表示存储在CPU和GPU上的数据(印象中二者的值好像是会自动同步成一致的)。其中带data的里面存 储的是激活值和W、b,diff中存储的是残差和dW、db。另外带mutable和不带mutable的一对指针所指 的位置是相同的,只是不带mutable的只读,而带mutable的可写。 2、Layer 代表神经网络的层,由各种各样的层来构成整个网络。一般一个图像或样本会从数据层中读进来, 然后一层一层的往后传。除了数据层比较特殊之外,其余大部分层都包含4个函数:LayerSetUp、Reshape、 Forward、Backward。其中LayerSetup用于初始化层,开辟空间,填充初始值什么的。Reshape是对输入 值进行维度变换,比如pooling接全连接层的时候要先拉成一个向量再计算。Forward是前向传播,Backward是 后向传播。 那么数据是如何在层之间传递的呢?每一层都会有一个(或多个)Bottom和top,分别存储输入和输出, 比如bottom[0]->cpu_data()存输入的神经元激活值,换成top存输出的,换成cpu_diff()存的是激活值的残差, 换成gpu是存在GPU上的数据,再带上mutable就可写了,这些是神经元激活值相关的,如果这个层前后有多个输入输出层, 就会有bottom[1],比如accuracy_layer就有两个输入,fc8和label。而每层的参数会存在this->blobs_里,一般this->blobs_[0] 存W,this->blobs_[1]存b,this->blobs_[0]->cpu_data()存的是W的值,this->blobs_[0]->cpu_diff()存的梯度dW,b和db也 类似,然后换成gpu是存在GPU上的数据,再带上mutable就可写了。 3、Net Net就是把各种层按train_val.prototxt的定义堆叠在一起,首先进行每个层的初始化,然后不断进行Update,每更新一次就 进行一次整体的前向传播和反向传播,然后把每层计算得到的梯度计算进去,完成一次更新,这里注意每层在Backward中只是计 算dW和db,而W和b的更新是在Net的Update里最后一起更新的。而且在caffe里训练模型的时候一般会有两个Net,一个train一 个test。刚开始训练网络时前面的一大堆输出,网络的结构什么的也都是这里输出的。 4、Solver Solver是按solver.prototxt的参数定义对Net进行训练,首先会初始化一个TrainNet和一个TestNet,然后其中的Step函数会 对网络不断进行迭代,主要就是两个步骤反复迭代:①不断利用ComputeUpdateValue计算迭代相关参数,比如计算learning rate, 把weight decay②调用Net的Update函数对整个网络进行更新。迭代中的一大堆输出也是在这里输出的,比如当前的loss 和learning rate。 |
随笔分类 - Caffe摘要:装过很多次caffe了,但这个还是遇到了很多奇葩问题,不过以前都是在ubuntu上,这次是在centos上。 1、import error _caffe.so: undefined symbol: _ZN5boost6python6detail11init_moduleER11PyModuleDef 阅读全文 posted @ 2019-03-28 10:01 牧马人夏峥 阅读 (265) | 评论 (0) 编辑 摘要:http://blog.csdn.net/u010402786/article/details/70141261 https://zhuanlan.zhihu.com/p/22624331 阅读全文 posted @ 2017-11-14 11:26 牧马人夏峥 阅读 (42) | 评论 (0) 编辑 摘要:参考:http://blog.csdn.net/bailufeiyan/article/details/50876728#reply 阅读全文 posted @ 2017-10-11 11:04 牧马人夏峥 阅读 (50) | 评论 (0) 编辑 fatal error: google/protobuf/arena.h:没有那个文件或目录 摘要:安装caff |