python - 输入到神经网络的 NP 数组会导致形状错误

标签 python machine-learning keras neural-network

我有一个虚拟 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/

相关文章:

python - 在 readthedocs.org 的本地实例上设置 Apache Solr

amazon-ec2 - 如何在 Kaggle 中的 AWS 机器上工作?

tensorflow - Keras:为什么我的 val_acc 在 Epoch 42/50 突然下降?

python - 通过bs4获取html表数据到python中

python - 我一直在尝试将一组值分成 4 个容器。我收到以下错误?如何解决这个问题我是Python初学者

python - vscode 无法捕获 flake8 输出

language-agnostic - 识别图像时的神经网络决策过程有可视化吗?

python - 为什么混淆指标中的正样本量小于实际数据?

python - 是否可以根据批处理标签(y_true)分布更新每批处理的学习率?

time-series - Keras LSTM RNN 预测 - 向后移动拟合预测