【问题标题】:Defining a feed_dict for a plceholder in python在python中为plceholder定义一个feed_dict
【发布时间】:2018-02-01 02:34:48
【问题描述】:

我不擅长 Python。我想知道如何使用 Python 为 Tensforflow 中的占位符定义 feed_dict。我确实查找了我的问题,最接近的是 C++ here

假设我有以下张量:

(<tf.Tensor 'Mul:0' shape=<unknown> dtype=float32>,)

在没有 feed_dict 的情况下看到它:

print sess.run('Mul:0')

带来这个错误:

InvalidArgumentError (see above for traceback): You must feed a value for placeholder tensor 'Mul' with dtype float
     [[Node: Mul = Placeholder[dtype=DT_FLOAT, shape=[], _device="/job:localhost/replica:0/task:0/gpu:0"]()]]

感谢任何帮助。

【问题讨论】:

    标签: python tensorflow floating-point placeholder


    【解决方案1】:

    通常您使用占位符将值提供给操作。假设您有一个带有名为train_op 的训练操作的网络,并为您的输入数据定义了占位符:data,目标标签:target。然后,当您运行训练循环时,您将在每次迭代中收集一些训练数据和相关标签,并使用 feed_dict 将它们提供给您的训练操作。看起来像这样:

    for _ in range(num_iterations):
        # Gather a batch of training data and targets somehow...
        d = dataset.get_next_batch()
        t = dataset.get_next_target_batch()
    
        # Run the training operation
        sess.run(train_op, feed_dict={data: d, target: t})
    

    所以我不确定您演示的用例是否有意义,但以上是您使用feed_dict 的典型方式。

    【讨论】:

    • 一般来说,我想查看神经网络中每一层的权重,这就是我使用 Inception 模型的预训练 .pb 文件的原因。你能告诉我我们是如何在一个通用的 tensorflow 项目中做到这一点的吗?
    • 这似乎与您的问题无关。您可以通过运行for var in tf.trainable_variables(): 后跟print('{}\n{}\n'.format(var.name, var.eval())) 来查看张量的值。
    • 谢谢,但他对我没有任何输出。我不想让你感到困惑,但你能看看我的另一个问题吗:stackoverflow.com/questions/45829802/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 2010-12-02
    • 1970-01-01
    相关资源
    最近更新 更多