feed_dict无法在张量流中将int转换为张量

时间:2017-01-25 21:13:58

标签: python tensorflow

似乎tensorflow中最棘手的部分是将张量匹配到目的地。

我收到运行时错误: TypeError:“无法将feed_dict键解释为Tensor:无法将int转换为Tensor。”

我正在尝试解决XOR问题,这是我的主要设置。

i = tf.placeholder(tf.float32, shape=[None,2])
y_ = tf.placeholder(tf.float32, shape=[None,1])

inp_vec = [[1.,0.],[0.,1.],[1.,1.],[0.,0.]]
solutions = [[1.],[1.],[0.],[0.]]

with tf.Session() as sess:
    sess.run( tf.initialize_all_variables() )

    for i in range(1000):
       sess.run(optim, feed_dict={i:inp_vec, y_:solutions})

以下是整个代码,如果您需要查看更多内容或想要告诉我我可以做得更好http://pastebin.com/GqrX21vf

inp_vec是[4x2],解是[4x1]。两者都应匹配占位符。自从我开始张量流以来,我一直遇到匹配问题所以我开始认为我从根本上不理解设置。对此的澄清将非常感激。

1 个答案:

答案 0 :(得分:8)

您正在使用for循环的i覆盖对变量i的引用。将名称更改为x_应解决问题。

x_ = tf.placeholder(tf.float32, shape=[None,2])
y_ = tf.placeholder(tf.float32, shape=[None,1])

inp_vec = [[1.,0.],[0.,1.],[1.,1.],[0.,0.]]
solutions = [[1.],[1.],[0.],[0.]]

with tf.Session() as sess:
    sess.run( tf.initialize_all_variables() )

    for i in range(1000):
       sess.run(optim, feed_dict={x_:inp_vec, y_:solutions})