我在修改一个Caffe教程以实现一个神经网络,但我很难找到一些PyCaffe模块的位置,以便查看某些函数的定义。
例如,教程中提到:
import caffe
from caffe import layers as L, params as P
...
L.Convolution(bottom, kernel_size=ks, stride=stride, num_output=nout, pad=pad, group=group)
L.InnerProduct(bottom, num_output=nout)
L.ReLU(fc, in_place=True)
...
这些函数定义在哪里可以找到?还有其他预定义的层类型在哪里可以查看?我看到layers
和params
在这里定义,但没有提到具体的类型(例如layers.Convolution
等)。
我试图弄清楚这些是因为在PyCaffe教程中省略了一些prototxt参数,我希望能够在生成prototxt时从Python中定义这些参数。这些参数包括blob_lr
和include{phase: TRAIN}
。
回答:
你可以像这样添加blob_lr
和phase
:
import caffe
from caffe import layers as L, params as P
ns = caffe.NetSpec()
ns.conv = L.Convolution(bottom, convolution_param={'kernel_size':ks,
'stride':stride,
'num_output':nout,
'pad':pad,
'group':group},
param=[{'lr_mult':1, 'decay_mult':1},
{'lr_mult':2, 'decay_mult':0}],
include={'phase': caffe.TRAIN})
你可以在这个回答中看到更多示例。