尝试训练一个 Robust CNN 模型,其定义如下:from keras.datasets import cifar10from keras.utils import np_utilsfrom keras import metricsfrom keras.models import Sequentialfrom keras.layers import Dense, Flatten, Conv2D, MaxPooling2D, LSTM, mergefrom keras.layers import BatchNormalizationfrom keras import metricsfrom keras.losses import categorical_crossentropyfrom keras.optimizers import SGDimport pickleimport matplotlib.pyplot as pltimport numpy as np from keras.preprocessing.image import ImageDataGeneratorfrom keras import layersfrom keras.callbacks import EarlyStoppingdef Robust_CNN(): model = Sequential() model.add(Conv2D(256, (3, 3), activation='relu', padding='same', init='glorot_uniform', input_shape=(2,128,1))) model.add(BatchNormalization()) model.add(MaxPooling2D(pool_size=(1, 2), padding='valid', data_format=None)) model.add(layers.Dropout(.3)) model.add(Conv2D(128, (3, 3), activation='relu', init='glorot_uniform', padding='same')) model.add(BatchNormalization()) model.add(MaxPooling2D(pool_size=(1, 2), padding='valid', data_format=None)) model.add(layers.Dropout(.3)) model.add(Conv2D(64, (3, 3), activation='relu', init='glorot_uniform', padding='same')) model.add(BatchNormalization()) model.add(MaxPooling2D(pool_size=(1, 2), padding='valid', data_format=None)) model.add(layers.Dropout(.3)) model.add(Conv2D(64, (3, 3), activation='relu', init='glorot_uniform', padding='same')) model.add(BatchNormalization()) model.add(MaxPooling2D(pool_size=(1, 2), padding='valid', data_format=None)) model.add(layers.Dropout(.3)) model.add(Flatten()) model.add(Dense(128, activation='relu', init='he_normal')) model.add(BatchNormalization()) model.add(Dense(11, activation='softmax', init='he_normal')) return model即使我已经导入了 BatchNormalization,似乎也无法弄清楚为什么会这样。
添加回答
举报
0/150
提交
取消