我是Tensorflow的新手,在阅读了一本书之后,我发现他们的样本数据对我来说过于冗长,无法遵循Tensorflow的工作。在这种情况下,我已经制作了自己的超小型csv文件。在完成几个错误后,我在脚本的末尾,似乎无法解决这个最终错误:
InvalidArgumentError(请参见上面的回溯):您必须使用dtype float和shape [?,1]为占位符张量'y'提供值 [[节点:y =占位符类型= DT_FLOAT,形状= [?,1], _device = “/作业:本地主机/复制:0 /任务:0 /装置: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)
答案 0 :(得分:0)
似乎您已成功声明'y'的形状和类型,但实际上没有为y指定任何值。对于占位符,您还需要使用 feed_dict 在tf.Session运行期间设置y的值。
一个有用的起点是official Tensorflow guides