【发布时间】:2019-05-26 05:43:32
【问题描述】:
我正在 keras 中构建 CNN,但无法输入我的数据。
我的图像的形状为 (-1, 40, 52, 1)。我已经尝试通过 inputLayer 层来拟合它们(这也需要 4 个维度,但最终会为我的 conv 层提供 5D 输入。
...
train_images.reshape(-1, 40, 52, 1)
test_images.reshape(-1, 40, 52, 1)
#Model
num_classes = 10
model = keras.Sequential()
model.add(keras.layers.InputLayer(input_shape=[1,40,52,1]))
model.add(keras.layers.Conv2D(filters = 32, kernel_size=5, strides=1, padding ='same', activation='relu'))
model.add(keras.layers.MaxPooling2D(pool_size=5, padding='same'))
model.add(keras.layers.Flatten())
model.add(keras.layers.Dense(512, activation='relu'))
model.add(keras.layers.Dense(num_classes, activation='softmax'))
model.summary()
#Compile model
model.compile(optimizer=tf.train.AdamOptimizer(0.001),
loss='categorical_crossentropy',
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=10, validation_data=
(test_images, test_labels), verbose=1)
我正在寻找一种适合我的图像的方法。但是当我运行它时,我得到了错误:
ValueError:conv2d 层的输入 0 与该层不兼容:预期 ndim=4,发现 ndim=5。收到的完整形状:[None, 1, 40, 52, 1]
【问题讨论】:
标签: python numpy tensorflow keras