用三层神经网络识别手写数字
前两章讲了搭建简单的三层神经网络和用三层神经网络识别mnist数据集。识别mnist数据集时有人已经把数字整理成像素值,我们只需要把像素值的大小调整下就可以当做输入值传入神经网络中,但是如果给我们一张未知的数字图片,我们该怎么得到图片的像素值呢,怎么识别这个未知的数字图片呢。
1.制作数字图片
参考:https://github.com/makeyourownneuralnetwork/makeyourownneuralnetwork/tree/master/my_own_images
2.读取图片的像素值。
1.>先用mnist数据集训练神经网络,参考上一章。
2.>遍历获取文件夹下的文件路径。
利用glob模块获取文件夹下未知文件的文件路径。
image_path = "E:\\Alls\\软件\\MNIST\\makeyourownneuralnetwork-master\\my_own_images\\2828_my_own_?.png"
glob.glob(image_path):
2.>用python库获取图片的像素值。
用scipy.misc或者imageio模块获取图片的像素值
image_array = scipy.misc.imread(image, flatten = True)image_array2 = imageio.imread(image_path, as_gray=True)
调整像素值的大小(0.01~1.0)
image_data = 255.0 - image_array.reshape(784)image_data = (image_data / 255.0 * 0.99) + 0.01
获取数字的值并追加到像素值的第0位
label = int(image[-5:-4])
record = np.append(label, image_data)
把所有图片的像素值放到集合中
our_own_dataset = []
our_own_dataset.append(record)
3.>测试
遍历集合,获取每个图片的像素值。并计算成功率
for our_own_data in our_own_dataset: image_input = our_own_data[1:] output = mnist.query(image_input) image_zero = our_own_data[0] label = np.argmax(output) print(image_zero, label) if label == image_zero: print("success") else: print("fail")
查看成功的图片个数
可以看到测试的准确率为80%。
代码地址:https://github.com/pythonAndAI/nerve-net/blob/master/com/test/otherExercises/readeImage.py
转载于:https://www.cnblogs.com/bestExpert/p/10361217.html
用三层神经网络识别手写数字相关推荐
- 简单python代码实现三层神经网络识别手写数字
准备 这个过程非常简单,就是用到了很多的矩阵运算. 训练数据集下载地址, 测试数据集下载地址, 数据格式 .csv格式数据的每一行都是一个28*28像素的手写数字图片,每一行的第一个像素是数字的值,从 ...
- 四、用简单神经网络识别手写数字(内含代码详解及订正)
本博客主要内容为图书<神经网络与深度学习>和National Taiwan University (NTU)林轩田老师的<Machine Learning>的学习笔记,因此在全 ...
- Python神经网络识别手写数字-MNIST数据集
Python神经网络识别手写数字-MNIST数据集 一.手写数字集-MNIST 二.数据预处理 输入数据处理 输出数据处理 三.神经网络的结构选择 四.训练网络 测试网络 测试正确率的函数 五.完整的 ...
- 第1章使用神经网络识别手写数字
人类视觉系统是世界奇观之一.考虑以下手写数字序列: 大多数人毫不费力地将这些数字识别为504192.这很容易就是欺骗性的.在我们大脑的每个半球,人类有一个主要的视觉皮层,也被称为V1,包含1.4亿个神 ...
- BP神经网络识别手写数字项目解析及代码
这两天在学习人工神经网络,用传统神经网络结构做了一个识别手写数字的小项目作为练手.点滴收获与思考,想跟大家分享一下,欢迎指教,共同进步. 平常说的BP神经网络指传统的人工神经网络,相比于卷积神经网络( ...
- 利用python实现简单的人工神经网络识别手写数字
利用 Python 搭建起了一个简单的神经网络模型,并完成识别手写数字. 1.前置工作 1.1 环境配置 这里使用scikit-learn库内建的手写数字字符集作为本文的数据集.scikit-lear ...
- python手机代码识别数字_利用python构建神经网络识别手写数字(附源代码)
一.运行环境配置 本次实验的运行环境win10(bit64),采用python环境为3.7.6,安装Python环境推荐使用Anaconda.Anaconda是一个免费开源的Python和R语言的发行 ...
- BP神经网络识别手写数字项目解析及matlab实现
BP神经网络指传统的人工神经网络,相比于卷积神经网络(CNN)来说要简单些. 人工神经网络具有复杂模式和进行联想.推理记忆的功能, 它是解决某些传统方法所无法解决的问题的有力工具.目前, 它日益受到重 ...
- Educoder 机器学习 神经网络 第四关:使用pytorch搭建卷积神经网络识别手写数字
任务描述 相关知识 卷积神经网络 为什么使用卷积神经网络 卷积 池化 全连接网络 卷积神经网络大致结构 pytorch构建卷积神经网络项目流程 数据集介绍与加载数据 构建模型 训练模型 保存模型 加载 ...
最新文章
- 弗洛伊德算法(Floyd)简介
- 高并发场景下数据库的常见问题及解决方案
- 一文读懂常用开源许可证
- 剑指offer之先序非递归打印二叉树
- 解决虚拟机 正在决定eht0 的ip信息失败 无链接-- 添加虚拟网卡
- python中浮点数类型_Python基本数据类型之浮点型
- 爬虫-post请求练习-百度翻译爬虫-智能的关联搜索不完整词的猜词搜索
- stm32编码器正反转计数程序_第六章:STM32CubeMx 定时器编码器模式基本使用方法...
- delphi webbrowser 经常使用的演示样本
- python for spss statistics_IBM SPSS Statistics 与用户自定义 Python 模块的集成及分析
- 牛客多校9 B. Two Frogs (概率dp+前缀和优化)
- FreeTextBox编辑框遇到的问题
- vue openlayer 添加风场效果
- 关于压缩感知的基本原理
- api arx autocad_AutoCAD开发选择----ObjectARX还是.net API(转载)
- 什么是马甲APP?怎么用马甲APP导流
- Linux 修改只读文件
- 软件的生命周期及模型
- c语言程序灵魂编译后,谭浩强C程序设计第4版精讲视频课程
- scipy butter 滤波器实现
热门文章
- 软件开发(二)——需求分析
- vue实现在线预览office文件
- poi读取Excel文件中的数据
- 鸿蒙三界巅峰实力最强大生物,三界最厉害的五位大神,简直太厉害,基本没有天敌!...
- A Brilliant Open Letter Song On Piracy To Lily Allen
- LINK : fatal error LNK1104: 无法打开文件“mfc90ud.lib”
- JAVA红石_[我的世界]Java版入门红石教程ep1.½---红石的兴趣与概念
- 店铺上新如何获取私域流量,免费流量,淘宝新品爆款
- 基于kali的dns攻击
- Java开源技术分享:使用TopCode实现手指跟踪