为什么在使用数据张量进行预测时需要“ step”参数?这个错误是什么意思?

时间:2019-02-06 06:17:55

标签: tensorflow keras

我正在尝试使用从文件加载的训练有素的Keras模型为单个数据点predict() d输出。但是我得到ValueError If predicting from data tensors, you should specify the 'step' argument.是什么意思?

我尝试设置step=1,但是随后出现另一个错误ValueError: Cannot feed value of shape () for Tensor u'input_1:0', which has shape '(?, 600)'

这是我的代码:

d = np.concatenate((hidden[p[i]], hidden[x[i]])).resize((1,600))
hidden[p[i]] = autoencoder.predict(d,steps=)

该模型期望输入(?,600)。我已将两个numpy的两个shape (300,)数组连接起来,得到(600,),其大小已调整为(1,600)(1,600)是我对predict()的输入。

5 个答案:

答案 0 :(得分:2)

在我的情况下,要预测的输入是None(因为我在代码的另一部分中有错误)。

答案 1 :(得分:1)

->定义steps参数的值

d = np.concatenate((hidden[p[i]], 
hidden[x[i]])).resize((1,600))
hidden[p[i]] = autoencoder.predict(d,steps=1)

答案 2 :(得分:1)

如果您使用的是测试数据生成器,则最好按照文档中的说明定义步骤。

如果要预测单个实例,则无需定义步骤。只需确保参数(即实例'd')不为None,否则将显示该错误。一些重塑可能也是必要的。

答案 3 :(得分:0)

在官方文档中,步骤是指停止之前的步骤总数。因此,步骤= 1意味着对一批进行预测,而不是对一条记录(单个数据点)进行预测。

https://keras.io/models/sequential/

答案 4 :(得分:0)

在我的情况下,我遇到了同样的错误,我只是使用numpy函数reshape()将数据重塑为预测模型最初使用的数据形状。