您的位置:首页 > 编程语言 > Python开发

Caffe Pythonlayer编写

2017-09-05 14:45 411 查看
#--------------------------------------------

1.使用方法:

layer{
name:"out-put"
type:"Python"
bottom:"loss"
python_param{
module:.py文件到$PYTHONPATH的相对路径
layer:.py文件具体的类}
}
eg:我的PATHONPATH为caffe/python,我将outputal.py文件放到该目录下,readaclo为我使用的具体方法

layer{
name:"out-put"
type:"Python"
bottom:"loss"
python_param{
module:"outputal"
layer:"readaclo"}
}
#--------------------------------------------

2.out-put.py文件的编写:

该文件必须包括setup、reshape、forward、backward,而且只有它们可以调用caffe的bottom与top
自己编写的方法(函数)注意实现要通过setup、reshape、forward、backward调用,并且前面加self
setup()是类启动时该做的事情,比如层所需数据的初始化。

reshape()就是取数据然后把它规范化为四维的矩阵。每次取数据都会调用此函数。

forward()就是网络的前向运行,这里就是把取到的数据往前传递。

backward()就是网络的反馈
importcaffe
importos
importpandas as pd
importnumpy as np
classreadaclo(caffe.Layer):
defsetup(self, bottom, top):
pass
defreshape(self, bottom, top):
pass
defforward(self, bottom, top):
self.read_loss(bottom)
pass
defbackward(self, top, bottom):
pass
defread_loss(self, out_bottom):
ifos.path.exists("1.csv"):
data= pd.DataFrame({'loss': []})
data.to_csv("1.csv",index=False)
data_original=pd.read_csv("1.csv")
#printnp.shape(out_bottom[0].data)
data_midinal=pd.DataFrame({'loss':[out_bottom[0].data]})
data_distination=pd.concat([data_original,data_midinal])
data_distination.to_csv('1.csv',index=False)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: