【发布时间】:2021-09-04 17:56:15
【问题描述】:
这里是新的 Python 开发人员。我在这里查看了其他类似的帖子,但我无法正确理解。将不胜感激。
print('X_train:', X_train.shape)
print('y_train:', y_train1.shape)
print('X_test:', X_train.shape)
print('y_test:', y_train1.shape)
X_train: (42000, 32, 32) y_train: (42000,) X_test: (42000, 32, 32) y_test: (42000,)
from keras.models import Sequential
from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D
def featuremodel() :
model = Sequential()
model.add(Conv2D(32, kernel_size=4, activation='relu', input_shape=(X_train.shape[0],32,64)))
model.add(MaxPooling2D(pool_size=3))
model.add(Conv2D(64, kernel_size=4, activation='relu'))
model.add(Flatten())
model.add(Dense(len(y_train[0]), activation='softmax'))
model.compile(loss='categorical_crossentropy',
optimizer='adadelta',
metrics=['acc'])
model.summary()
model.fit(X_train, y_train, epochs = 10, validation_data = (X_test,y_test))
返回模型
ValueError:layersequential_7 的输入 0 与 layer 不兼容::预期 min_ndim=4,发现 ndim=2。收到的完整形状:(无,1024)
【问题讨论】:
-
是的,看起来不错,我明白了这个问题 - 但不知道我做错了什么。谢谢。
-
您的输入形状不正确。你有 42000 个样本,每个样本有 32,32 个形状。所以输入的形状应该是(32,32)。
标签: python-3.x tensorflow machine-learning keras tf.keras