1.加载数据
数据由课程提供,第二个课程,第三周课后联系,如果需要百度一下能找到
X_train, Y_train, X_test, Y_test, classes = tf_utils.load_dataset()
原来的数据矩阵类型:
print(X_train.shape)
print(Y_train.shape)
print(X_test.shape)
print(Y_test.shape)
Y_train = Y_train.T
Y_test = Y_test.T
Y_train = keras.utils.to_categorical(Y_train, num_classes=6)
Y_test = keras.utils.to_categorical(Y_test, num_classes=6)
2.搭建卷积网络
model = Sequential(
[Conv2D(6, (5, 5), activation='relu', input_shape=(64, 64, 3)),
MaxPooling2D((2, 2)),
Conv2D(16, (5, 5), activation='relu'),
MaxPooling2D((2, 2)),
Flatten(),
Dense(64, activation='relu'),
Dense(32, activation='relu'),
Dense(6, activation='softmax')]
)
网络结构为:
卷积->池化->卷积->池化->Flatten(压平)->全连接->全连接->全连接
3.配置神经网络
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['acc'])
4.训练
model.fit(X_train, Y_train, epochs=20, batch_size=64, verbose=1, validation_split=0.0, shuffle=True)
5.对神经网络评价
score = model.evaluate(X_test, Y_test, batch_size=64)