首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tensorflow :在C++中为用户op实现梯度?

Tensorflow :在C++中为用户op实现梯度?
EN

Stack Overflow用户
提问于 2016-08-31 14:35:52
回答 1查看 263关注 0票数 0

理想情况下,我希望操作是完全自包含的(渐变和操作定义在同一个文件中)。官方教程只重点介绍了一个python实现。有没有人知道是否有可能用C++实现渐变,以及如何实现?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-31 22:51:57

自动渐变计算目前仅在Python API中完全支持。因此,操作与其渐变操作的关联仍应在Python中手动指定。假设你有一个在C++中定义的op Foo和它的渐变op FooGrad,你应该得到相应的Python包装器foofoo_grad。在Python中,您可以编写以下代码:

代码语言:javascript
复制
@RegisterGradient("Foo"):
def _FooGrad(op, grad):
  return foo_grad(op.inputs[0], op.outputs[0], grad)

请注意,我假设您的foo_grad操作采用原始操作的输入和输出以及传入的渐变。对于您的情况,这可能是真的,也可能不是,因此请相应地进行调整。

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

https://stackoverflow.com/questions/39242333

复制
相关文章

相似问题

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