我有一个虚拟 np 数组:
model_input = np.array(range(10))
我正在尝试通过虚拟神经网络:
model = Sequential()
model.add(Dense(units = 50, input_shape = model_input.shape, activation = 'relu'))
model.add(Dense(units = 50, activation = 'relu'))
model.add(Dense(3))
model.compile(loss = 'mse', optimizer = Adam(lr = 0.01), metrics = ['accuracy'])
但是,当我运行时
model.predict(model_input)
我收到错误:
Error when checking : expected dense_300_input to have shape (10,) but got array with shape (1,)
这对我来说没有多大意义,因为我已经告诉神经网络输入的形状等于我放入其中的数组的形状,并且在运行预测之前不对其进行任何修改功能。我觉得我误解了一些基本的东西,但不确定它是什么。
我的进口是:
import numpy as np
from keras.models import Sequential
from keras.layers import Dense
from keras.optimizers import Adam
最佳答案
Keras 期望输入具有批量维度。您的批量大小可以为 1,但输入数组仍然需要具有批量维度,例如如下所示:
model_input = np.array([model_input])
或几种替代方案之一,例如
model_input = np.expand_dims(model_input, axis=0)
model_input = model_input[None,:]
输出
array([[0.759178 , 0.40589622, 2.0082092 ]], dtype=float32)
关于python - 输入到神经网络的 NP 数组会导致形状错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60402174/