我有一个简单的稠密NN,有两个用Keras编写的输入值,运行在Tensorflow和Python之上。我已经成功地安装了这个网络,我可以运行评估没有错误。但是,当我想要预测单个样本数据的结果时,由于输入数据的维数的形状不正确,我得到了一个错误。但是,当我打印numpy数组的形状时,它会返回正确的形状:
inputArr = np.array((x[sample][0], x[sample][1]))
print(inputArr)
print(inputArr.shape)
prediction = model.predict(inputArr)
这将产生以下输出:
^{pr2}$后面是一个错误:
Traceback (most recent call last):
File ".\train3d.py", line 60, in <module>
prediction = model.predict(inputArr)
File "C:\Users\svoja\AppData\Local\Programs\Python\Python35\lib\site-packages\keras\engine\training.py", line 1147, in predict
x, _, _ = self._standardize_user_data(x)
File "C:\Users\svoja\AppData\Local\Programs\Python\Python35\lib\site-packages\keras\engine\training.py", line 749, in _standardize_user_data
exception_prefix='input')
File "C:\Users\svoja\AppData\Local\Programs\Python\Python35\lib\site-packages\keras\engine\training_utils.py", line 137, in standardize_input_data
str(data_shape))
ValueError: Error when checking input: expected dense_1_input to have shape (2,) but got array with shape (1,)
从错误消息中可以看到,网络需要一个维数为(2,)的数组,它与我的输入数组的输出完全相同。在
我的问题是,数组到底出了什么问题?在
{/kery>期望批处理的大小为,其中批处理的大小为。在你的例子中
D=2
但是你没有矩阵。在要传递单个数据点,您需要形状
(1, 2)
,它读取1个数据点和2个特征。您可以通过以下方式实现:或者更简短的语法形式:
^{pr2}$其中
None
添加了一个新维度。在相关问题 更多 >
编程相关推荐