用MNIST的训练集训练的LeNet,这里就不展示代码了
直接加载保存好的模型

lenet = torch.load('resourses/trained_model/LeNet_trained.pkl')

测试代码附上

print("Testing")
#定义转换操作
#将测试图片读入并transform后传入模型
test_images = Image.open('resourses/LeNet_test/0.png')
img_to_tensor = transforms.Compose([transforms.Resize(32),transforms.Grayscale(num_output_channels=1),transforms.ToTensor(),transforms.Normalize([0.5], [0.5])])
input_images = img_to_tensor(test_images).unsqueeze(0)
#如果cuda可用,将模型及数据搬到cuda上进行计算
USE_CUDA = torch.cuda.is_available()
if USE_CUDA:input_images = input_images.cuda()lenet = lenet.cuda()
output_data = lenet(input_images)
#打印测试信息
test_labels = torch.max(output_data, 1)[1].data.cpu().numpy().squeeze(0)
print(output_data)
print(test_labels)

目前按照自己的图片基本上没有正确率,找不到任何原因,目前输出8的频率很高。

后来查阅了相关资料,有以下几点原因:

  1. 解析MNIST数据集,你会发现数据集里的图片是黑底白字,如:

    而我们自定义的测试图片一般都是白底黑字,如:

    故我将自定义的测试图片按像素取反后又重新进行了测试
    像素取反的代码如下:
from PIL import Image, ImageOps  #导包
image = Image.open('resourses/LeNet_test/0.png')
image_invert = ImageOps.invert(image)
image_invert.show()

经过像素取反后,测试的正确率达到百分之50到60,正确率仍然不理想,继续参考下面的原因

  1. MNIST数据集收录的都是外国人的字迹,外国人的手写风格、习惯和国人有些许不同,这也是影响测试正确率的一重大原因。但楼主目前没有测试过修改字体后图片测试的正确率。

欢迎大家补充潜在的原因。
附参考链接:https://www.zhihu.com/question/52047327

pytorch之拿训练好的LeNet模型测试自己的手写图片预测失败相关推荐

  1. Pytorch 实现全连接神经网络/卷积神经网络训练MNIST数据集,并将训练好的模型在制作自己的手写图片数据集上测试

    使用教程 代码下载地址:点我下载 模型在训练过程中会自动显示训练进度,如果您的pytorch是CPU版本的,代码会自动选择CPU训练,如果有cuda,则会选择GPU训练. 项目目录说明: CNN文件夹 ...

  2. python caffe 训练自己的模型_python接口调用已训练好的caffe模型测试分类方法

    训练好了model后,可以通过python调用caffe的模型,然后进行模型测试的输出. 本次测试主要依靠的模型是在caffe模型里面自带训练好的结构参数:~/caffe/models/bvlc_re ...

  3. Keras : 训练minst数据集并加载模型对本地手写图片进行预测

    我是本期目录酱 引入 minst数据集介绍 训练模型与测试的py代码分析 训练及测试的py代码(全) 训练及测试结果分析 加载模型并预测本地图片结果 加载模型并预测本地图片py代码(不全) 加载模型并 ...

  4. 用tensorflow框架和Mnist手写字体,训练cnn模型以及测试一张手写字体

    感想 首先我是首先看了一下莫凡pyhton教程中tensorflow python搭建自己的神经网络教程以及查看了官方的教程TensorFlow中文社区-MNIST进阶教程,这里面只是有简单的测试出来 ...

  5. PyTorch基础与简单应用:构建卷积神经网络实现MNIST手写数字分类

    文章目录 (一) 问题描述 (二) 设计简要描述 (三) 程序清单 (四) 结果分析 (五) 调试报告 (六) 实验小结 (七) 参考资料 (一) 问题描述 构建卷积神经网络实现MNIST手写数字分类 ...

  6. 05.序列模型 W1.循环序列模型(作业:手写RNN+恐龙名字生成)

    文章目录 作业1:建立你的循环神经网络 1. RNN 前向传播 1.1 RNN 单元 1.2 RNN 前向传播 2. LSTM 网络 2.1 LSTM 单元 2.2 LSTM 前向传播 3. RNN ...

  7. pytorch综合多个弱分类器,投票机制,进行手写数字分类(boosting)

    首先,这个文章的出发点就是让一个网络一个图片进行预测,在直观上不如多个网络对一个图片进行预测之后再少数服从多数效果好. 也就是对于任何一个分类任务,训练n个弱分类器,也就是分类准确度只比随机猜好一点, ...

  8. 奔跑吧Caffe(在MNIST手写体数字集上用Caffe框架训练LeNet模型)

    数据集背景: MNIST 是一个大型的手写体数字数据库,广泛应用于机器学习领域的训练和测试,由纽约大学Yann LeCun教授整理. MNIST包括60000个训练集和10000测试集,图片固定尺寸为 ...

  9. pyTorch入门(四)——导出Minist模型,C++ OpenCV DNN进行识别

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为2548字,预计阅读8分钟 前言 前三章介绍了pyTorch训练的相关,我们也保存模型成功了,今天这篇就是使用C++ OpenC ...

  10. python ocr中文训练_cnocr: cnocr是用来做中文OCR的Python 3包。cnocr自带了训练好的识别模型,安装后即可直接使用...

    English README. cnocr 使用交流QQ群 欢迎扫码加入QQ交流群: 最近更新 [2020.05.29]:V1.2.2 主要变更: 优化了对数字识别的准确度. 优化了模型结构,进一步降 ...

最新文章

  1. mysql用户ip登录失败怎么办_MySQL使用IP地址登录 ERROR 1045 (28000) Access denied for use...
  2. 数据蒋堂 | 报表工具的SQL植入风险
  3. CTFshow 信息收集 web17
  4. Delphi判断一个文件是不是JPG图片
  5. 【JAVASCRIPT】处理剪切板
  6. python中函数type可以测试对象类型_python类型检测最终指南--Typing模块的使用
  7. 基于keepalived实现haproxy高可用的双主模型配置
  8. Windows域控普通用户授权加域有数量限制修改方法
  9. 关于jquery基本过滤器中:eq()无法传变量的问题
  10. jQuery - slice( start, [end] ) Method
  11. 解析博图数据块(昆仑通态触摸屏自动命名)
  12. Jboss4.2.3.GA运行后war包解压在哪
  13. 立即执行的js插件,转成可以在VUE环境下使用,
  14. 数据结构 习题 第四章 串 (C语言描述)
  15. T3677 道生一——dfs
  16. 【数据分析】京东2019校招数据分析工程师笔试题
  17. lae界面开发工具入门之介绍十一--安卓系统如何编译打包?
  18. Spring Mvc - 用户注册服务端生成默认头像实现
  19. 最新解决谷歌翻译无法使用的教程
  20. c语言数组判断不及格人数,C语言编程 运用数组求不及格人数

热门文章

  1. 使用JS判断日期的有效性
  2. Python数据分析!NBA的球星们喜欢在哪个位置出手!
  3. rabbit的安装配置过程
  4. Linux内核地址空间分布
  5. mysql interval啥意思_MySQL interval()函数
  6. 金庸武侠、四大名著的语言风格
  7. [codechef] TOURISTS
  8. java做2048_java版实现2048游戏功能
  9. 创建Web站点的欢迎页面
  10. Codeforces 919C--Seat Arrangements