改代码设计了一个四层卷积神经网络用以识别MNIST数据集,最终训练的得的结果中,单个网络在测试集上可到到最高99.67%
的识别率,通过级联九个神经网络
,可以使得测试集达到99.7%
的准确率
该网络体积小,30个epochs的训练可以达到99.67%的准确率,耗时4分钟左右。同时在代码中集成了tensorboard调参方法以及一个由PyQt5设计的APP
cnnModel.py
: 定义模型Mydataset.py
:定义数据集以及dataloader,初次运行时请修改其中的DATASET_PATH
以读取MNIST数据集Train.py
: 训练模型,初次运行时请修改其中的SAVED_PATH
指定模型保存地址Test.py
: 测试模型在训练集准确率,初次运行时请修改其中的path
指定模型地址。调用SingleTest():
进行单模型测试,调用CombinationTest():
进行模型级联测试ConfusuinMatrix.py
: 绘制单个模型的混淆矩阵Predict.py
: 用以预测单幅图像main_gui.py,widget.ui,ui_widget.py
: GUI封装代码
Trained_models
: 存放预训练的模型参数datasets
: 存放MNIST数据集Images
: 存放自己的手写数字图片
-Predict.py
文件中,line24选择测图片即可
pip install tensorboard
- 在
Train.py
中修改TestParameters
,往列表中加入训练参数,代码会自动对所有可能的训练参数进行训练 - 训练结束后,在Anaconda Prompt中执行命令行
tensorboard --logdir=runs
pip install PyQt5
pip install PyQt5-tools
- 运行文件
main_gui.py