繁体   English   中英

如何解决“输入占位符张量的值”错误?

[英]How can I resolve the, “feed a value for placeholder tensor” error?

我是Tensorflow的新手,在阅读本书时,我发现他们的样本数据对我来说太冗长,无法追踪Tensorflow的工作。 在这种情况下,我改为制作了自己的超小csv文件。 解决了几个错误之后,我进入了脚本的结尾,似乎无法解决最后的错误:

InvalidArgumentError(请参见上面的回溯):您必须使用dtype float和shape [?,1]输入占位符张量'y'的值
[[节点:y =占位符类型= DT_FLOAT,形状= [?, 1],_ device =“ / job:localhost /副本:0 / task:0 / device:CPU:0”]]

下面是我的代码,下面是我包括print语句的输出的代码。 谁能帮助我了解此错误。 另外,我知道我的模拟数据不会输出任何明智的模型,我只想在切换到更复杂的数据之前先使其工作。 谢谢!

import tensorflow as tf
import numpy as np
import pandas as pd
import tarfile
import os

def load_data():
    return pd.read_csv("datasets/housing/mock.csv")

#load the data  
mockData = load_data()
print("mock data:")
print(mockData)

#add the bias
mockDataPlusBias = np.c_[np.ones((3,1)), mockData]
print("Mock data and bias:")
print(mockDataPlusBias)

#create placeholders
X = tf.constant(mockDataPlusBias, dtype=tf.float32, name="X")
y = tf.placeholder(tf.float32, shape=(None,1), name="y")

#for use with matmul
XT = tf.transpose(X)
print("X:")
print(X)
print("XT:")
print(XT)
print("y:")
print(y)

theta = tf.matmul(tf.matmul(tf.matrix_inverse(tf.matmul(XT, XT)), XT), y)
with tf.Session() as sess:
    theta_value = theta.eval()
    print(theta_value)

最后是打印语句:

mock data:
   col1  col2
0     1     2
1     4     5
2     7     8
Mock data and bias:
[[1. 1. 2.]
 [1. 4. 5.]
 [1. 7. 8.]]
X:
Tensor("X:0", shape=(3, 3), dtype=float32)
XT:
Tensor("transpose:0", shape=(3, 3), dtype=float32)
y:
Tensor("y:0", shape=(?, 1), dtype=float32)

好像您已成功声明“ y”的形状和类型是什么,但实际上并未为y指定任何值。 对于占位符,你还需要使用feed_dict tf.Session运行过程中设置Y的值(一个或多个)。

在这里查看示例

一个有用的起点是正式的Tensorflow指南

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM