【发布时间】:2017-08-31 04:26:10
【问题描述】:
我正在 Keras 中尝试一个简单的模型,我想将它作为输入一个大小为 5x3 的矩阵。在下面的示例中,这是在添加第一个密集层时使用input_shape=(5, 3) 指定的。
from keras.models import Sequential
from keras.layers import Dense, Activation
from keras.optimizers import Adam
import numpy as np
model = Sequential()
model.add(Dense(32, input_shape=(5, 3)))
model.add(Activation('relu'))
model.add(Dense(32))
model.add(Activation('relu'))
model.add(Dense(4))
adam = Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=1e-08, decay=0.0)
model.compile(loss='mean_squared_error', optimizer=adam)
x = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15]])
y = model.predict(x)
但是,当我运行代码时,model.predict() 函数给出以下错误:
ValueError: 检查时出错:预期的 dense_input_1 有 3 个维度,但得到的数组形状为 (5, 3)
但我不明白这个错误。 x 的形状是 (5, 3),这正是我告诉第一个密集层期望的输入。为什么它期望三个维度?看来这可能和batch size有关,但我以为input_shape只是指网络的形状,与batch size无关……
【问题讨论】:
标签: tensorflow machine-learning neural-network deep-learning keras