【问题标题】:can we feed tf.variable to tf.placeholder in feed_dict?我们可以将 tf.variable 提供给 feed_dict 中的 tf.placeholder 吗?
【发布时间】:2018-08-14 09:45:44
【问题描述】:

我想用 tensorflow 做一个简单的任务。但我遇到了一个错误

import numpy as np
import pandas as pd

fv = tf.Variable(10.0,name="first_var")

sv = tf.Variable(20.0,np.random.randn(),name="second_var")

fvp = tf.placeholder("float32",name="first_fvp",shape=[])

svp = tf.placeholder("float32",name="second_svp",shape=[])

result = tf.Variable(0.0,name="output")

result =  np.multiply(fvp,svp)

sess = tf.Session()

sess.run(tf.global_variables_initializer())

print(sess.run(result,feed_dict={fvp:fv,svp:sv}))

错误 = 使用序列设置数组元素。

在这种情况下,我得到一个错误

如果我使用

print(sess.run(result,feed_dict={fvp:5.0,svp:10.0}))

我得到输出 50.0

【问题讨论】:

    标签: python tensorflow machine-learning


    【解决方案1】:

    首先,我还是不太明白你的问题是什么。看来您已经解决了该错误。如果可能,请编辑。

    关于那个错误:

    您不能将张量输入feed_dict

    仔细阅读tensorflow/python/client/session.py。当您向feed_dict={} 提供一些数据时,可接受的提要值包括 Python 标量、字符串、列表、numpy ndarray 或 TensorHandles。在您的情况下,fvsv 是张量。

    所以你的第二个print(sess.run(result,feed_dict={fvp:5.0,svp:10.0})) 可以工作。

    你也可以试试fv = np.array([10.0]),sv = np.array([20.0])

    另外,你不需要这个result = tf.Variable(0.0,name="output"),如果你想命名输出,你可以使用result = tf.identity(np.multiply(fvp,svp), name="output")

    【讨论】:

    • 非常感谢...我的问题仅此而已。我可以将什么东西传递给 feed_dict{}?现在我明白了。我们可以使用 Python 标量、字符串、列表、numpy ndarray 或 TensorHandles 来提供 feed_dict{}。不能通过 tf.Variable() CZ 它们是张量 :)
    猜你喜欢
    • 1970-01-01
    • 2016-08-10
    • 1970-01-01
    • 2018-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多