【问题标题】:Caffe Python API reference?Caffe Python API 参考?
【发布时间】:2016-05-27 09:09:25
【问题描述】:

我对 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 上问过基本相同的问题,但没有人回答。

【问题讨论】:

    标签: python neural-network deep-learning caffe pycaffe


    【解决方案1】:

    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})
    

    【讨论】:

    • 我猜这是我们能得到的最接近 API 参考的地方。它仍然不能回答很多问题,例如,在 Python 中,我们使用类 HDF5Data,就好像它是 Data 的子类一样,但在 caffe.proto 文件中的哪个地方明显?在实践中,HDF5Data 不是 Data 的子类,但接口就像是子类一样,因为参数从 proto 文件读取和读取到 proto 文件的方式。但我只是通过对源代码的艰巨破译才发现,如果有实际的 API 参考,生活会容易得多。
    • @Ray 我想从 python 接口的角度来看,HDF5Data 不是Data的子类...
    • @Shai:很好的解决方案。但是,我发现您可能缺少一个参数ntop=2。这样对吗?另外,如果我想在一个 prototxt 中制作 train 和 val prototxt。我可以使用代码n.data, n.label = L.HDF5Data(batch_size=batch_size, source=source_path, ntop=2, include={'phase': caffe.TRAIN}) n.data, n.label = L.HDF5Data(batch_size=batch_size, source=source_path,ntop=2, include={'phase': caffe.TEST}) 吗?我需要在测试和培训中更改变量ndata,nlabel 吗?谢谢
    • @user8264 如果你想要数据和标签输出,那么你需要 ntop=2。至于训练和测试阶段:没有简单的解决方案
    • 谢谢。这意味着我们必须将其写入单独的文件中。这是我的参考问题stackoverflow.com/questions/42289880/…
    猜你喜欢
    • 2022-10-15
    • 1970-01-01
    • 2015-09-04
    • 2023-02-02
    • 2013-09-09
    • 2018-10-11
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    相关资源
    最近更新 更多