利用神经网络识别手写数字笔记

本文介绍了一种使用神经网络识别手写数字的方法。通过Anaconda3搭建TensorFlow环境,并使用MNIST数据集进行训练和测试。实验发现,通过增加隐藏层神经元数量,识别准确率从初始的约96%提升到了96.66%,展示了神经网络的强大能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近尝试使用文章中的方法识别手写数字,文章来源
第一章:利用神经网络识别手写数字
使用Anaconda3下载地址(Anaconda3)
使用包管理工具中创建TensorFlow的环境并将自带的IDE spyder用Git汉化—仔细阅读说明后实现。
1.使用anaconda3创建TensorFlow环境—-大神链接

以下数据集及源码均使用python2.6/2.7编写,如果不想自己改代码,就集成python2.7的开发环境

2.打开spyder使用python management管理包路径

python management管理外包

3.下载测试数据、训练数据及源码
4.打开解压并更改src目录下的mnist_loader.py的数据集路径(更改为本地)
很关键    文章没有详细说明  查了好久才发现~

5.码代码尝试效果

#导入训练集
import mnist_loader
training_data, validation_data, test_data = mnist_loader.load_data_wrapper()



#创建神经网络结构 784个输入神经元  30个隐藏神经元 10个输出神经元
import network
net = network.Network([784, 30, 10])
net.SGD(training_data, 30, 10, 3.0, test_data=test_data)

效果:
这里写图片描述

此时,我们尝试更改隐藏层神经元的个数:

#导入训练集
import mnist_loader
training_data, validation_data, test_data = mnist_loader.load_data_wrapper()



#创建神经网络结构 784个输入神经元  100个隐藏神经元 10个输出神经元
import network
net = network.Network([784, 100, 10])
net.SGD(training_data, 30, 10, 3.0, test_data=test_data)

效果:
这里写图片描述

我们可以观察到通过更改隐藏层神经元的个数,识别效果会变得更有效,更改后最终可以识别9666张数字图片(在10000张图片中),同时,sigmod函数也成功代替了0/1输出(通过定义小数区间)并将结果更均匀的分散开来,最后的结果线性平滑,最后通过调整“超参数”使结果可调性变得更明显,可以让人工干预的更有效。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值