Caffe Python API reference?
<p>My main gripe about Caffe is that although there are a few examples in the documentation, there is no definitive reference guide. This applies especially to the Python interface (which would be great if there was a reference guide), and also to prototxt. It seems that in order to use Caffe properly, the user must already be an expert in Google Protobuf and CUDA. Shame to admit I have no experience in either of those things.</p>

<p>So how do I look up things (like function signature, supported values for various variables, and so on) in the Python interface? From <a href="http://nbviewer.jupyter.org/github/BVLC/caffe/blob/master/examples/01-learning-lenet.ipynb" rel="nofollow">this example</a> we can see that we can create a data layer in Python as follows.</p>

<pre><code>n.data, n.label = L.Data(batch_size=batch_size, backend=P.Data.LMDB, source=lmdb,
                         transform_param=dict(scale=1./255), ntop=2)
</code></pre>

<p>This is very nice, because afterwards we can export the network we made in Python to <code>prototxt</code>. The problem however, is that I have no idea how to make a slightly different data layer (with different parameters or different backends for example), and there seems to be nowhere to look these things up. How, for example, do I construct the following layer in <code>prototxt</code> using PyCaffe code?</p>

<pre><code>layer {
  name: "image"
  type: "HDF5Data"
  top: "image"
  include {
    phase: TRAIN
  }
  hdf5_data_param {
    source: "./training_data_paths.txt"
    batch_size: 64
  }
}
</code></pre>

<p>Where do I look up what (Python) functions to call and what arguments they take and what are the valid values for the arguments? I've asked essentially the same question on <a href="https://groups.google.com/forum/#!topic/caffe-users/MEd2vkXsJRA" rel="nofollow">Caffe Users' Group</a> but no one answered.</p>