python神经网络例题:手写数字的识别

本文介绍了一个使用Python实现的神经网络,用于识别手写数字。通过下载MNIST数据集,调整输入值范围,并构建目标矩阵,作者展示了如何训练和测试网络。在简单的代码实现后,讨论了评估网络性能的方法。
摘要由CSDN通过智能技术生成

声明:代码和数据集均来自网络,仅供自己学习。侵删。

上次学习了一般的神经网络。这次找个实际的操刀,学习一下。
数据库来源:
http://pjreddie.com/projects/mnist-in-csv/
我们可以从中获得我们想要的数据集和测试集

data_file = open("train_100.csv",'r')
data_list = data_file.readlines()
data_file.close()

一行一行来看,
open()此函数能打开一个文件,“r”表示只读(read)
readline()将文件中的所有行读入变量data_list.但是要注意,此函数会将所有文件读入到内存中,在文件内容过大的情况下,不宜使用。一次在一行上使用更有效率。
最后一行close()函数关闭文件,让计算机释放用于保存文件的部分内存。
在使用python之前,千万要记得,装一些常用库。代码里也要用import导入。

准备训练数据

scaled_input=(numpy.asfarray(all_values[1:])/255.0*0.99)+0.01
print(scaled_input)

我们知道颜色值的范围是[255,0],我们需要将此范围缩小到[0.01,1]的范围里,以上代码就是为了调整范围
由于手写数字一共有十个且防止输出为0或者1所以构建的目标矩阵为

onodes=10
target=numpy.zeros(onodes)+0.01
targets[int(all_values[0])]=0.99

最后我们可以写出完整的代码。

完成代码

import numpy
class neuralNetwork:
  def __init__(self,inputnodes,hiddennodes,outputnodes,learningrate):
  self.inodes=inputnodes
  self.hnodes=hiddennodes
  self.onodes
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值