2
我有一些問題試圖傳播我的損失函數的梯度相對於代表收集指數的變量,類似於在空間變換網絡(https://github.com/tensorflow/models/blob/master/transformer/spatial_transformer.py)中所做的。我覺得我可能會錯過一些非常簡單的事情。這裏是什麼,我希望做一個簡單的玩具例子:Tensorflow:如何通過tf.gather傳播漸變?
import tensorflow as tf
import numpy as np
lf = np.array([1.0,2.0,3.0])
lf_b = 2.0
sess = tf.InteractiveSession()
x = tf.placeholder(tf.float32, shape=(3))
pt = tf.Variable(0, name='point')
y_ = tf.placeholder(tf.float32, shape=())
sess.run(tf.initialize_all_variables())
y = tf.gather(x, pt)
data_loss = tf.reduce_mean(tf.squared_difference(y,y_))
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(data_loss)
目前,這個返回錯誤: ValueError異常:目前沒有任何變量
感謝您的回答!我的理解是,根據(https://arxiv.org/pdf/1506.02025v3.pdf)和(https://github.com/tensorflow/models/blob/master/transformer/spatial_transformer.py)中的代碼,這種抽樣應該是(次)不可分的。即使當pt是一個浮點數(後來被四捨五入並轉換爲int),我也會得到相同的錯誤。你有建議如何這應該工作? – user873261