import tensorflow as tf
import matplotlib.pyplot as plt
import pandas
import numpy as np
if __name__ == '__main__':
(train_images,train_labels),(test_images,test_labels)=tf.keras.datasets.fashion_mnist.load_data()
train_images = train_images/255
test_images = test_images/255
train_images = np.expand_dims(train_images,-1)#-1最后的位置加上一个维度
test_images = np.expand_dims(test_images,-1)
print(train_images.shape)#(60000, 28, 28, 1)四维数据 batch, high, width, channel
model = tf.keras.Sequential([
# filter(3,3) 四维数据变三维
tf.keras.layers.Conv2D(64,(3,3),input_shape=train_images.shape[1:],activation='relu',padding='same'),
tf.keras.layers.Conv2D(64,(3,3),activation='relu', padding='same'),
tf.keras.layers.MaxPool2D(),
tf.keras.layers.Conv2D(128, (3,3),activation='relu', padding='same'),
tf.keras.layers.Conv2D(128,(3,3),activation='relu', padding='same'),
tf.keras.layers.MaxPool2D(),
tf.keras.layers.Conv2D(256, (3, 3), activation='relu', padding='same'),
tf.keras.layers.Conv2D(256, (3, 3), activation='relu', padding='same'),
tf.keras.layers.MaxPool2D(),
tf.keras.layers.Conv2D(256, (3, 3), activation='relu', padding='same'),
tf.keras.layers.GlobalAveragePooling2D(),#batch hight width channel四维数据,Dense接收二维数据,扁平化,高度,宽度,通道取平均值
tf.keras.layers.Dense(10,activation='softmax')
])
model.compile(
optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['acc']
)
history = model.fit(
train_images,
train_labels,
epochs=30,
validation_data=(test_images, test_labels)
)
print(history)
七.卷积神经网络
最新推荐文章于 2024-10-17 15:16:26 发布