Caffe Python API 引用?

Caffe Python API reference?

我对 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_ROOT/src/caffe/proto/caffe.proto 找到 caffe 的 protobuffer 定义,在那里你可以看到不同的参数及其可接受的值。

要使用 caffe.NetSpec() 界面创建 "HDF5Data" 图层而不是 "Data" 图层,您可以

n.image = L.HDF5Data(hdf5_data_param={'source': './training_data_paths.txt',  
                                      'batch_size': 64},
                     include={'phase': caffe.TRAIN})