我试图了解caffe的基础知识,特别是与python一起使用。
我的理解是模型定义(比如给定的神经网络架构)必须包含在'.prototxt'
文件中。
当您使用'.prototxt'
训练数据模型时,您将权重/模型参数保存到'.caffemodel'
文件
此外,用于培训的'.prototxt'
文件(包括学习率和正则化参数)与用于测试/部署的文件(不包括它们)之间存在差异。
问题:
'.prototxt'
是培训的基础是正确的
'.caffemodel'
是训练(权重)的结果,使用
'.prototxt'
关于培训数据?'.prototxt'
用于培训,一个用于培训
测试,并且只有轻微的差异(学习率
和训练中的正规化因素),但那个nn
架构(假设你使用神经网络)是一样的吗?对于这些基本问题以及可能是一些非常不正确的假设表示道歉,我正在做一些在线研究,上面的几行总结了我迄今为止的理解。
答案 0 :(得分:12)
让我们来看看BVLC / caffe提供的一个例子:bvlc_reference_caffenet
您会注意到实际上有 3 n file included from main.cpp:1:
/usr/include/c++/v1/functional:1454:41: error: no type named 'type' in 'std::__1::enable_if<false, void>'; 'enable_if' cannot be used to disable this declaration
__callable<_Fp>::value &&
^~~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:10:15: note: in instantiation of member function 'std::__1::function<int (int)>::function' requested here
using base::function;
^
main.cpp:14:25: note: while substituting deduced template arguments into function template 'my_function' [with _Fp = nullptr_t]
my_function<int(int)> f = nullptr;
^
1 error generated.
个文件:
train_val.prototxt
:此文件描述了培训阶段的网络架构。 depoly.prototxt
:此文件描述了测试时间的网络架构(“部署”)。 solver.prototxt
:此文件非常小,包含用于培训的“元参数”。例如,learning rate policy,regulariztion等 '.prototxt'
和train_val.prototxt
代表的网络架构应该大致相似。这两者之间几乎没有什么区别:
输入数据:在训练期间,通常使用一组预定义的输入进行训练/验证。因此,deploy.prototxt
通常包含显式输入图层,例如train_val
图层或"HDF5Data"
图层。另一方面,"Data"
通常不知道它将获得什么输入,它只包含一个声明:
deploy
声明网络所期望的输入以及其尺寸应该是什么
或者,One可以放置"Input"
图层:
input: "data"
input_shape {
dim: 10
dim: 3
dim: 227
dim: 227
}
layer {
name: "input"
type: "Input"
top: "data"
input_param { shape { dim: 10 dim: 3 dim: 227 dim: 227 } }
}
期间显然不可用。 deploy
期间,没有丢失,也没有反向传播。在caffe中,您提供了一个deploy
来描述网络,火车/瓦尔数据集和损失。此外,您提供了描述培训元参数的train_val.prototxt
。训练过程的输出是一个solver.prototxt
二进制文件,其中包含经过训练的网络参数。
网络经过培训后,您可以使用.caffemodel
和deploy.prototxt
参数来预测新输入和看不见输入的输出。
答案 1 :(得分:0)
是的但是,有不同类型的.prototxt文件 例如
https://github.com/BVLC/caffe/blob/master/examples/mnist/lenet_train_test.prototxt
这是针对培训和测试网络的
用于命令行训练ypu可以使用求解器文件,例如.prototxt文件
https://github.com/BVLC/caffe/blob/master/examples/mnist/lenet_solver.prototxt