【发布时间】:2021-02-27 21:48:27
【问题描述】:
我一直在尝试针对图像分类问题训练 2D CNN。我的数据由 64 x 64 像素的图像组成,每个图像都标有 1-37 的数字。我的 CNN 架构如下:
train_dataset = train.flow_from_directory('/kaggle/input/temp-frames/frames/train', target_size=(64,64), batch_size=256, class_mode='categorical')
validation_dataset = train.flow_from_directory('/kaggle/input/temp-frames/frames/validation', target_size=(64,64), batch_size=256, class_mode='categorical')
model = Sequential()
model.add(Conv2D(filters= 64, kernel_size=(3,3), activation ='relu',strides = (2,2), padding = 'valid', input_shape= (64,64,3)))
model.add(MaxPooling2D(pool_size=(2,2), padding='same'))
model.add(Flatten())
model.add(Dense(1024, activation='relu'))
model.add(Dropout(.5))
model.add(Dense(1024, activation='relu'))
model.add(Dropout(.5))
model.add(Dense(1024, activation='relu'))
model.add(Dropout(.5))
model.add(Dense(37))
model.add(Activation('softmax'))
optimizer = keras.optimizers.Adam(lr=0.01)
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
history = model.fit(train_dataset, epochs = 100, batch_size = 32, validation_data = validation_dataset, shuffle = True)
由于某种原因,我的 2D CNN(获得 16% 的准确率)的性能比我的 1D CNN(获得 30% 的准确率)差。我想知道是否有任何方法可以改进我的模型以获得更好的结果。
【问题讨论】:
标签: python tensorflow keras deep-learning conv-neural-network