caffe杂

snapot实际与.bin一样,都是参数文件

如果网络变了bin文件是要变的。

但是我们在使用一些net时,例如googlenet、resnet、shufflenet,

我们不太会修改这些net结构,而是对输入以及其后面的一些层做改动,因此训练的时候是可以直接使用finetune参数的

分成多个branch

每个branch对应一个输入,使用一个net(例如googlenet shufflenet),产生一个feature

然后可以做多种尝试,例如讲feature加起来后面接一个fc,也可以每个feature单独处理

一个bottom必须有一个top与之对应

一个top可以没有bottom与之对应(如果没有则会print出来)

silence层:

假如有某一层的某个top后面没有bottom,caffe训练的时候就会把这些top的结果都print出来,用Silence layer就是为了把接住以防止它print

slice层:

切片,例如某一层读入了多个branch的标签,则可以在后面跟一个slice层,切片后得到所需的标签,然后与output层做差得loss层

bn层:batch normalization

传统的神经网络,只是在将样本输入输入层之前进行标准化处理(减均值,除标准差),以降低样本间的差异性。BN是在此基础上,不仅仅只对输入层的输入数据进行标准化,还对隐藏层的输入进行标准化。

https://blog.csdn.net/whitesilence/article/details/75667002

https://arxiv.org/pdf/1502.03167.pdf

注意shufflenet与shuffle的区别

shuffle指的是乱序操作,一般我们在处理数据的时候会用到,在数据增强,生成input文件(输入图片url,标签)之后进行shuffle,然后将shuffle后的input文件输入网络

python shuffle数据集:

https://blog.csdn.net/orangefly0214/article/details/80352310

/build/tools/caffe与caffe.cpp源文件:

https://blog.csdn.net/teeyohuang/article/details/76778593

猜你喜欢

转载自www.cnblogs.com/zealousness/p/9551587.html
今日推荐