Какие операции поддерживаются для автоматического дифференцирования в тензорном потоке
Меня смущает, какие типы операций поддерживаются для автоматического дифференцирования в 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 ответов
Это isn'ta прямой ответ, но как ключ, это автоматическое дифференцирование библиотека Автоград списки операций, которые не поддерживаются, см Non-дифференцируемые функции, например,floor()
,
round()
не дифференцируются автоматически.
Можно также определить свои собственные операции, при условии, что вы можете сами кодировать градиенты, см. Extend-autograd-by-defining-your-own.
Я предполагаю, что tf очень похож на это.