一:使用tf.keras.model.Sequential搭建分类模型主要包括七个步骤:
- 导入包模块
- 加载数据集(这里使用的是keras.datasets.fashion_mnist数据包)
- 切分训练集和验证集
- 对数据进行归一化处理
- 搭建分类模型
- 训练模型
- 将模型应用于测试集
二:导入数据包
这里将一次性导入在机器学习方面经常使用到的库。
1 import numpy as np 2 import pandas as pd 3 import matplotlib as mpl 4 import matplotlib.pyplot as plt 5 import sklearn 6 import tensorflow as tf 7 import tensorflow.keras as keras
打印一下库的相关信息
1 for module in np, pd, mpl, sklearn, tf, keras: 2 print (module.__name__, module.__version__)
三:加载数据集
这里使用的是keras自带的数据集,用于图像识别的数据
1 fashion_mnist = keras.datasets.fashion_mnist 2 (x_train_all, y_train_all), (x_test, y_test) = fashion_mnist.load_data()
在对数据进行处理之前,我们应该查看一下数据集中的数据样本,所以我们定义一下两个函数来查看数据集中的图片
1 # 定义函数,查看一张图片 2 def show_single_img(img_arr): 3 plt.imshow(img_arr, cmap='binary') 4 plt.show() 5 show_single_img(x_train_all[0])
显示结果为:
1 # 定义函数,显示多行多列图片。显示x_data的前n_rows*n_cols个图片 2 def show_images(n_rows, n_cols, x_data, y_data, class_names): 3 assert len(x_data) == len(y_data)#数据集中的图片的个数必须和其类别个数相同 4 assert n_rows*n_cols < len(x_data)#要显示的数据量必须小于数据集中的数据量 5 plt.figure(figsize=(n_rows*1.5, n_cols*1.5)) 6 for row in range(n_rows): 7 for col in range(n_cols): 8 index = n_cols * row + col 9 plt.subplot(n_rows, n_cols, index+1) 10 plt.imshow(x_data[index], cmap='binary', interpolation='nearest') 11 plt.axis('off')# 不显示坐标轴 12 plt.title(class_names[y_data[index]]) 13 plt.show() 14 class_names = ['T-shirt', 'Trouser', 'Pullover', 'Dress', 'Coat', 'Sandal', 'Shirt', 15 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle_boot']#fashion_mnist数据集图片的类别 16 show_images(3, 3, x_test, y_test, class_names)
显示结果为: