我对tf中支持自动区分的操作类型感到困惑。具体而言,是否支持张量索引操作?
...
# feat is output from some conv layer and the shape is B*H*W*C
# case one
loss = feat[:,1:,1:,:] - feat[:,:-1,:-1,:]
# case two
feat[:,1:,1:,:] = feat[:,1:,1:,:]/2. # assign and replace part original value
loss = tf.reduce_sum(feat)
答案 0 :(得分:0)
这不是直接的答案,但作为提示,此自动区分库autograd列出了不支持的操作,请参见Non-differentiable functions,例如floor()
,{{1} }不能自动区分。
如果您可以自己编写渐变,还可以定义自己的操作,请参见extend-autograd-by-defining-your-own
我想tf与此非常相似。