如何正确地将数组输入到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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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