首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在caffe2中添加自定义python图层

在caffe2中添加自定义python图层
EN

Stack Overflow用户
提问于 2017-08-17 23:52:59
回答 1查看 405关注 0票数 3

在caffe中添加python层相当简单(创建一个继承自caffe.layer的子类并添加四个基本方法,如herehere所述。但是,在caffe2中添加自定义python层对我来说并不简单。有人能解释一下在caffe2中添加python层的步骤吗?

EN

回答 1

Stack Overflow用户

发布于 2019-04-02 19:54:28

首先,您必须将新层实现为Python类,如示例所示。在这种情况下,它只以相反的顺序输出输入张量:

代码语言:javascript
复制
class ReverseOrderOp(object):
    def forward(self, inputs, outputs):
        blob_out = outputs[0]

        blob_out.reshape(inputs[0].shape)
        blob_out.data[...] = inputs[0].data[::-1]

然后,可以使用model.net.Python将新图层添加到模型

代码语言:javascript
复制
model = ModelHelper(name="test")

l = np.asarray([0,1,2,3])
workspace.FeedBlob('l', l.astype(np.float32))

model.net.Python(ReverseOrderOp().forward)(
    ['l'], ['out'], name='ReverseOrder'
)
workspace.RunNetOnce(model.net)
print(workspace.FetchBlob('out'))

输出应为[ 3. 2. 1. 0.]

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45739792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档