我对Caffe的主要抱怨是虽然文档中有一些例子,但没有明确的参考指南 . 这尤其适用于Python界面(如果有参考指南那么会很棒),也适用于原型文本 . 似乎为了正确使用Caffe,用户必须已经是Google Protobuf和CUDA的专家 . 遗憾地承认我对这两件事都没有经验 .
那么我如何在Python界面中查找事物(如函数签名,各种变量支持的值等)?从this example我们可以看到我们可以在Python中创建一个数据层,如下所示 .
n.data, n.label = L.Data(batch_size=batch_size, backend=P.Data.LMDB, source=lmdb,
transform_param=dict(scale=1./255), ntop=2)
这非常好,因为之后我们可以将我们用Python制作的网络导出到 prototxt
. 然而问题是,我不知道如何制作稍微不同的数据层(例如,具有不同的参数或不同的后端),并且似乎无处可查看这些内容 . 例如,如何使用PyCaffe代码在 prototxt
中构造以下图层?
layer {
name: "image"
type: "HDF5Data"
top: "image"
include {
phase: TRAIN
}
hdf5_data_param {
source: "./training_data_paths.txt"
batch_size: 64
}
}
我在哪里查找要调用的(Python)函数以及它们采用的参数以及参数的有效值是什么?我在Caffe Users' Group问了基本相同的问题,但没有人回答 .
1 回答
caffe的protobuffer定义可以在$CAFFE_ROOT/src/caffe/proto/caffe.proto找到,在那里你可以看到不同的参数及其可接受的值 .
要使用
caffe.NetSpec()
接口创建"HDF5Data"
图层而不是"Data"
图层,您可以