2 回答

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
你只需要稍微修改一下代碼。的值不tf.Variable應(yīng)該是tf.placeholder,否則運(yùn)行時(shí)會(huì)導(dǎo)致你的初始化錯(cuò)誤sess.run(tf.global_variables_initializer())。你可以用tf.stack它來代替。另外,請(qǐng)記住在運(yùn)行時(shí)饋送數(shù)據(jù)sess.run(Y)。
import tensorflow as tf
X = tf.placeholder(tf.float32, name="X")
W = tf.Variable([1,2,1], dtype=tf.float32, name="weights")
W = tf.reshape(W,[1,3])
F = tf.stack([X*X,X,1.0])
F = tf.reshape(F,[3,1])
Y = tf.matmul(W,F)
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
for i in range(10):
Y_val = sess.run(Y, feed_dict={X: i})
print("Y:",Y_val)
Y: [[1.]]
Y: [[4.]]
Y: [[9.]]
Y: [[16.]]
Y: [[25.]]
Y: [[36.]]
Y: [[49.]]
Y: [[64.]]
Y: [[81.]]
Y: [[100.]]

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
我認(rèn)為即使您仍然可以初始化一個(gè)依賴于這樣的占位符的變量,W除非您添加更多代碼來僅初始化未初始化的變量,否則將重復(fù)初始化。那是更多的努力。
希望我沒有錯(cuò)過這種方法的其他低效率。
import tensorflow as tf
sess = tf.InteractiveSession()
X = tf.placeholder(tf.float32, name="X")
W = tf.Variable([1, 2, 1], dtype=tf.float32, name="weights")
W = tf.reshape(W, [1, 3])
var = tf.reshape([X*X,X,1],[3,1])
F = tf.get_variable('F', dtype=tf.float32, initializer=var)
init = tf.global_variables_initializer()
Y=tf.matmul(W,F)
for i in range(10):
sess.run([init], feed_dict={X: i})
print(sess.run(Y))
[[1.]]
[[4.]]
[[9.]]
[[16.]]
[[25.]]
[[36.]]
[[49.]]
[[64.]]
[[81.]]
[[100.]]
添加回答
舉報(bào)