【发布时间】:2021-04-18 13:45:23
【问题描述】:
我没有太多向 Stack Overflow 发问题的经验。原谅我的错误。我会尽量做到彻底。
我有两个 numpy 数组:
- X 与形状 (78300, 90, 90)。
- y 与形状 (78300, 29)
- X 是一组具有高度和宽度 (90, 90) 的黑白图像。
- y 是 X 对应的编码类标签。(编码为
y = tensorflow.keras.utils.to_categorical(labels))
我正在尝试根据这些数据训练以下 CNN。
from tensorflow.keras import utils
from tensorflow.keras.optimizers import Adam
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D, BatchNormalization
from tensorflow.keras.callbacks import ModelCheckpoint
model = Sequential()
model.add(Conv2D(64, (3, 3), input_shape=(90, 90, 1), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(128, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(Conv2D(256, (3, 3), activation='relu'))
model.add(MaxPooling2D((2, 2)))
model.add(BatchNormalization())
model.add(Flatten())
model.add(Dropout(0.5))
model.add(Dense(1024, activation='sigmoid'))
model.add(Dense(29, activation='softmax'))
我在运行时收到以下错误
n_classes = 29
batch = 64
epochs = 5
learning_rate = 0.001
adam = Adam(lr=learning_rate)
model.compile(optimizer=adam,
loss='categorical_crossentropy',
metrics=['accuracy'])
cp_callback = ModelCheckpoint(filepath=os.path.join("/output_dir", "result_folder"),
save_weights_only=True,
verbose=1)
history = model.fit(x,
y,
batch_size=batch,
epochs=epochs,
validation_split=0.1,
shuffle=True,verbose=1,
callbacks=[cp_callback])
:ValueError: Input 0 of layer sequential is incompatible with the layer: : expected min_ndim=4, found ndim=3. Full shape received: [None, 90, 90]
我不知道出了什么问题。 请帮助我。另外,如果您可以链接文档/文章/博客文章/视频,以帮助我了解图层中输入形状的细微差别,那将非常有帮助。
【问题讨论】:
标签: python tensorflow conv-neural-network