手写数字识别-小数据集

1.手写数字数据集

  • from sklearn.datasets import load_digits
  • digits = load_digits()

 (1)导入数据包

 

 

 

 

 (2)读取数据

 

 

 

2.图片数据预处理

  • x:归一化MinMaxScaler()
  • y:独热编码OneHotEncoder()或to_categorical
  • 训练集测试集划分
  • 张量结构

 (1)x:归一化MinMaxScaler(),y:独热编码OneHotEncoder()

 结果如图:

 

 

 

3.设计卷积神经网络结构

  • 绘制模型结构图,并说明设计依据。

模型结构如图:

 

设计理念依据:

 

(1)传递一个input_shape的关键字参数给第一层,input_shape是一个tuple类型的数据,其中也可以填入None,如果填入None则表示此位置可能是任何正整数。数据的batch大小不应包含在其中
(2)传递一个batch_input_shape的关键字参数给第一层,该参数包含数据的batch大小。该参数在指定固定大小batch时比较有用,例如在stateful RNNs中。事实上,Keras在内部会通过添加一个None将input_shape转化为batch_input_shape
(3)有些2D层,如Dense,支持通过指定其输入维度input_dim来隐含的指定输入数据shape。一些3D的时域层支持通过参数input_dim和input_length来指定输入shape。
(4)优化器optimizer:该参数可指定为已预定义的优化器名

(5)损失函数loss:该参数为模型试图最小化的目标函数

(6)由于图像尺寸较小,故卷积核尺寸设置为3×3,三个卷积-池化层的卷积核数量分别设置为16、32、64。

 

 

 

 

 

 

 

 

 

 

 

 

 

4.模型训练

 

 

 

 

 

 

5.模型评价

  • model.evaluate()
  • 交叉表与交叉矩阵
  • pandas.crosstab
  • seaborn.heatmap

 

 

 

 

posted @ 2020-06-09 09:06  cong!  阅读(1277)  评论(0编辑  收藏  举报