首页 文章

Caffe Python API参考?

提问于
浏览
3

我对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 回答

  • 3

    caffe的protobuffer定义可以在$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})
    

相关问题