Caffe Python API参考?

我对Caffe的主要抱怨是,尽管文档中有一些示例,但没有确定的参考指南.这尤其适用于Python接口(如果有参考指南,那会很棒),也适用于prototxt.看来,要正确使用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上提出了基本相同的问题,但没有人回答.

解决方法:

caffe的原缓冲定义可以在$CAFFE_ROOT/src/caffe/proto/caffe.proto处找到,在那里您可以看到不同的参数及其接受的值.

要使用caffe.NetSpec()接口创建“ HDF5Data”层而不是“ Data”层,您可以

n.image = L.HDF5Data(hdf5_data_param={'source': './training_data_paths.txt',  
                                      'batch_size': 64},
                     include={'phase': caffe.TRAIN})
上一篇:caffe继续训练/pretrain_model


下一篇:Windows下ImportError: No module named _caffe解决方案