1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| model = tf.keras.Sequential()#顺序模型 model.add(tf.keras.layers.Conv2D(64,(3,3), input_shape=train_images.shape[1:],#(10000, 28, 28, 1)除去第一个个数值 activation='relu', padding='same' ))#卷积层对图像的特征提取能力强,32个卷积核,生成32个通道,3,3表示3x3的卷积核 model.add(tf.keras.layers.Conv2D(64,(3,3), activation='relu', padding='same')) model.add(tf.keras.layers.MaxPool2D()) model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Conv2D(128,(3,3), activation='relu', padding='same')) model.add(tf.keras.layers.Conv2D(128,(3,3), activation='relu', padding='same')) model.add(tf.keras.layers.MaxPool2D()) model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Conv2D(256,(3,3), activation='relu', padding='same')) model.add(tf.keras.layers.Conv2D(256,(3,3), activation='relu', padding='same')) model.add(tf.keras.layers.MaxPool2D()) model.add(tf.keras.layers.Dropout(0.5))
model.add(tf.keras.layers.Conv2D(512,(3,3), activation='relu', padding='same')) model.add(tf.keras.layers.Conv2D(512,(3,3), activation='relu', padding='same')) model.add(tf.keras.layers.Dropout(0.5)) model.add(tf.keras.layers.GlobalAveragePooling2D())#全局平均池化 model.add(tf.keras.layers.Dense(256,activation='relu')) model.add(tf.keras.layers.Dense(10,activation='softmax'))
|