zoukankan      html  css  js  c++  java
  • 15.手写数字识别-小数据集(load_digits)

    1.手写数字数据集

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

     

     

    2.图片数据预处理

    • x:归一化MinMaxScaler()
    • y:独热编码OneHotEncoder()或to_categorical

     

    • 训练集测试集划分
    • 张量结构

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

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

    先导入相关的包

    然后设计模型结构,因为图片是(8,8)的像素规模,在池化方面,就最多能池化3次

    在卷积上,可以多次卷积,我选择的(3,3)的卷积核,然后卷积的方式是same,即卷积完成后,得到和卷积前同样大小的结果。

     构建模型结果:

    4.模型训练

    • model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
    • train_history = model.fit(x=X_train,y=y_train,validation_split=0.2, batch_size=300,epochs=10,verbose=2)

    5.模型评价

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

     观察预测值和实际值

     通过交叉矩阵观察预测值与实际值的符合情况

      通过热力图观察预测值与实际值的符合程度

    小结:模型构建完成后,得到的精确率在96%左右,说明模型的构建还是有一定的不足,应该更加优化卷积和池化的安排,尝试不同的卷积核得到的模型

    从热力图看得出来,在预测数字8的时候容易和数字1混淆,如果是实际应用中则需要加多数字8的样本,让模型能够更好的学习到数字8的特征。也能进行更好的预测。

  • 相关阅读:
    FastJson序列化枚举类
    优雅计时StopWatch
    spark算子之aggregateByKey
    scala系列列表
    iOS开发证书不受信任
    .NET Core 中的鉴权授权正确方式
    设置双击直接打开.ipynb文件
    Ubuntu18添加开机启动项
    iOS ObjectC 笔记(二)GCD
    iOS VideoToolBox decoder解码失败(12909和12911)问题解决(二)
  • 原文地址:https://www.cnblogs.com/cyxxixi/p/13092867.html
Copyright © 2011-2022 走看看