如何正确地将数组输入到TensorFlow占位符中

我试图将数组以批次的形式输入到TensorFlow的占位符中。但即使提供了正确的形状,我仍然收到一个InvalidArgumentError错误。

这是我代码的一部分:

import tensorflow as tf
import numpy as np
xdata = np.linspace(1,50, 10000)
noise = np.random.rand(len(xdata))
y_true = (1.5*xdata) + 5 + noise    #m = 1.5 and c = 5
m = tf.Variable(0.1)  #initial values
c = tf.Variable(0.2)
batch_size = 10
x = tf.placeholder(tf.float32, [batch_size])
y = tf.placeholder(tf.float32, [batch_size])
y_hat = (m*x) + c
error = tf.reduce_sum(tf.square(y-y_hat))
optimizer = tf.train.GradientDescentOptimizer(learning_rate= 0.01)
train = optimizer.minimize(error)
init = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    n_batches = 1000
    for i in range(n_batches):
        rand_int = np.random.randint(len(xdata), size =batch_size)
        feed_dict = {x:xdata[rand_int], y: y_true[rand_int]}
        sess.run(train, feed_dict = feed_dict)
        print('Batch:',i, ' loss: ', sess.run(error))
    m_final, slope_final = sess.run([m , c])

错误信息如下:

InvalidArgumentError: You must feed a value for placeholder tensor ‘Placeholder’ with dtype float and shape [10]

为什么会发生这种情况?


回答:

错误发生在这一行:

print('Batch:', i, ' loss: ', sess.run(error))

为了计算张量error的值,你必须为占位符xy提供值:

sess.run(error, feed_dict)

Related Posts

在使用k近邻算法时,有没有办法获取被使用的“邻居”?

我想找到一种方法来确定在我的knn算法中实际使用了哪些…

Theano在Google Colab上无法启用GPU支持

我在尝试使用Theano库训练一个模型。由于我的电脑内…

准确性评分似乎有误

这里是代码: from sklearn.metrics…

Keras Functional API: “错误检查输入时:期望input_1具有4个维度,但得到形状为(X, Y)的数组”

我在尝试使用Keras的fit_generator来训…

如何使用sklearn.datasets.make_classification在指定范围内生成合成数据?

我想为分类问题创建合成数据。我使用了sklearn.d…

如何处理预测时不在训练集中的标签

已关闭。 此问题与编程或软件开发无关。目前不接受回答。…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注