在prototxt文件中配置layer层
layer{
name:'MyPythonLayer'
type:'Python'
top:'output'
bottom:'conv'
python_param{
module:'mypythonlayer'
layer:'MyLayer'
param_str:"'num':21"
}
定义python程序,类名与prototxt文件中layer参数一致。传入的参数由param_str参数确定,在python文件中四个函数固定。
import sys
caffe_root = '/home/tyd/caffe/'
sys.path.insert(0,caffe_root+'python')
import caffe
import numpy as np
import yaml
import cv2
class MyLayer(caffe.Layer):
def setup(self,bottom,top):
self.num=yaml.load(self.param_str)["num"]
print "Parameter num: ",self.num
def reshape(self,bottom,top):
pass
def forward(self,bottom,top):
top[0].reshape(*bottom[0].shape)
print bottom[0].data.shape
print bottom[0].data
top[0].data[