【发布时间】:2017-05-05 06:37:53
【问题描述】:
当我阅读有关创建新操作的文档时,我无法理解示例http://deeplearning.net/software/theano/extending/extending_theano.html#example-op-definition 中的 grad()。为什么他们返回output_grads[0] * 2 而不是2? output_grads[0] 代表什么?
如果 output_grads[0] 表示关于输入 x 的链导数,在下一个示例中 http://deeplearning.net/software/theano/extending/extending_theano.html#example-props-definition,为什么 grad() 返回 a * output_grads[0] + b(应该是 self.a * output_grads[0] + self.b)而不是 self.a * output_grads[0]?
更复杂的自定义操作怎么样?像y = exp(x1)/(a*(x1**3)+log(x2)),它的grad()怎么写?另外,如果输入是向量或矩阵,grad()怎么写?
【问题讨论】: