ためtf.gradients
を呼び出す必要があると思います(マトリックス):
import tensorflow as tf
def twodtensor2list(tensor,m,n):
s = [[tf.slice(tensor,[j,i],[1,1]) for i in range(n)] for j in range(m)]
fs = []
for l in s:
fs.extend(l)
return fs
def grads_all_comp(y, shapey, x, shapex):
yl = twodtensor2list(y,shapey[0],shapey[1])
grads = [tf.gradients(yle,x)[0] for yle in yl]
gradsp = tf.pack(grads)
gradst = tf.reshape(gradsp,shape=(shapey[0],shapey[1],shapex[0],shapex[1]))
return gradst
今grads_all_comp(y, shapey, x, shapex)
意志出力所望の形式でランク4テンソル。すべてをスライスアップして一緒に再パックする必要があるので、非常に非効率的な方法です。誰かがより良いものを見つけたら、私はそれを見ることに非常に興味があります。