在源码中,作者改造fast rcnn并新增了python层,在我的工作中我需要新传入python层一组数据,修改过程如下:
1、在train.prototxt文件中所有调用python层的地方,增加bottom,也就是对python层增加一组输入数据。在数据来源的那一层增加top,也就是增加一组输出数据。
2、数据来源的data层也是Python层,获得想要增加的数据后,增加一个输出,也就是改造self._name_to_top_map变量。
self._name_to_top_map = {
'data': 0,
'rois': 1,
'labels': 2,
'img': 3} # 增加的数据
这里要注意,传入gpu的数据只能是矩阵,不能是字符串,因此img变量只能用矩阵表示。然后再增加一个reshape。
# image index
top[3].reshape(1, 1) #想要调用多大维度的数据,就reshape成多大的维度
3、在数据输入的python层中增加对数据的读取,
img = bottom[3].data
修改完毕,成功运行。