本文实例为大家分享了python实现手写数字识别的具体代码,供大家参考,具体内容如下


import numpyimport scipy.special#import matplotlib.pyplotclass neuralNetwork:def __init__(self,inputnodes,hiddennodes,outputnodes,learningrate):self.inodes=inputnodesself.hnodes=hiddennodesself.onodes=outputnodesself.lr=learningrateself.wih=numpy.random.normal(0.0,pow(self.hnodes,-0.5),(self.hnodes,self.inodes))self.who=numpy.random.normal(0.0,pow(self.onodes,-0.5),(self.onodes,self.hnodes))self.activation_function=lambda x: scipy.special.expit(x)passdef train(self,inputs_list,targets_list):inputs=numpy.array(inputs_list,ndmin=2).Ttargets=numpy.array(targets_list,ndmin=2).Thidden_inputs=numpy.dot(self.wih,inputs)hidden_outputs=self.activation_function(hidden_inputs)final_inputs=numpy.dot(self.who,hidden_outputs)final_outputs=self.activation_function(final_inputs)output_errors=targets-final_outputshidden_errors=numpy.dot(self.who.T,output_errors)self.who+=self.lr*numpy.dot((output_errors*final_outputs*(1.0-final_outputs)),numpy.transpose(hidden_outputs))self.wih+=self.lr*numpy.dot((hidden_errors*hidden_outputs*(1.0-hidden_outputs)),numpy.transpose(inputs))passdef query(self,input_list):inputs=numpy.array(input_list,ndmin=2).Thidden_inputs=numpy.dot(self.wih,inputs)hidden_outputs=self.activation_function(hidden_inputs)final_inputs=numpy.dot(self.who,hidden_outputs)final_outputs=self.activation_function(final_inputs)return final_outputsinput_nodes=784hidden_nodes=100output_nodes=10learning_rate=0.1n=neuralNetwork(input_nodes,hidden_nodes,output_nodes,learning_rate)training_data_file=open(r"C:\Users\lsy\Desktop\nn\mnist_train.csv","r")training_data_list=training_data_file.readlines()training_data_file.close()#print(n.wih)#print("")epochs=2for e in range(epochs):for record in training_data_list:all_values=record.split(",")inputs=(numpy.asfarray(all_values[1:])/255.0*0.99)+0.01targets=numpy.zeros(output_nodes)+0.01targets[int(all_values[0])]=0.99n.train(inputs,targets)#print(n.wih)#print(len(training_data_list))#for i in training_data_list:# print(i)test_data_file=open(r"C:\Users\lsy\Desktop\nn\mnist_test.csv","r")test_data_list=test_data_file.readlines()test_data_file.close()scorecard=[]for record in test_data_list:all_values=record.split(",")correct_lable=int(all_values[0])inputs=(numpy.asfarray(all_values[1:])/255.0*0.99)+0.01outputs=n.query(inputs)label=numpy.argmax(outputs)if(label==correct_lable):scorecard.append(1)else:scorecard.append(0)scorecard_array=numpy.asarray(scorecard)print(scorecard_array)print("")print(scorecard_array.sum()/scorecard_array.size)#all_value=test_data_list[0].split(",")#input=(numpy.asfarray(all_value[1:])/255.0*0.99)+0.01#print(all_value[0])#image_array=numpy.asfarray(all_value[1:]).reshape((28,28))#matplotlib.pyplot.imshow(image_array,cmap="Greys",interpolation="None")#matplotlib.pyplot.show()#nn=n.query((numpy.asfarray(all_value[1:])/255.0*0.99)+0.01)#for i in nn :# print(i)```《python神经网络编程》中代码,仅做记录,以备后用。 ```pythonimage_file_name=r"*.JPG"img_array=scipy.misc.imread(image_file_name,flatten=True)img_data=255.0-img_array.reshape(784)image_data=(img_data/255.0*0.99)+0.01图片对应像素的读取。因训练集灰度值与实际相反,故用255减取反。import numpyimport scipy.special#import matplotlib.pyplotimport scipy.miscfrom PIL import Imageclass neuralNetwork:def __init__(self,inputnodes,hiddennodes,outputnodes,learningrate):self.inodes=inputnodesself.hnodes=hiddennodesself.onodes=outputnodesself.lr=learningrateself.wih=numpy.random.normal(0.0,pow(self.hnodes,-0.5),(self.hnodes,self.inodes))self.who=numpy.random.normal(0.0,pow(self.onodes,-0.5),(self.onodes,self.hnodes))self.activation_function=lambda x: scipy.special.expit(x)passdef train(self,inputs_list,targets_list):inputs=numpy.array(inputs_list,ndmin=2).Ttargets=numpy.array(targets_list,ndmin=2).Thidden_inputs=numpy.dot(self.wih,inputs)hidden_outputs=self.activation_function(hidden_inputs)final_inputs=numpy.dot(self.who,hidden_outputs)final_outputs=self.activation_function(final_inputs)output_errors=targets-final_outputshidden_errors=numpy.dot(self.who.T,output_errors)self.who+=self.lr*numpy.dot((output_errors*final_outputs*(1.0-final_outputs)),numpy.transpose(hidden_outputs))self.wih+=self.lr*numpy.dot((hidden_errors*hidden_outputs*(1.0-hidden_outputs)),numpy.transpose(inputs))passdef query(self,input_list):inputs=numpy.array(input_list,ndmin=2).Thidden_inputs=numpy.dot(self.wih,inputs)hidden_outputs=self.activation_function(hidden_inputs)final_inputs=numpy.dot(self.who,hidden_outputs)final_outputs=self.activation_function(final_inputs)return final_outputsinput_nodes=784hidden_nodes=100output_nodes=10learning_rate=0.1n=neuralNetwork(input_nodes,hidden_nodes,output_nodes,learning_rate)training_data_file=open(r"C:\Users\lsy\Desktop\nn\mnist_train.csv","r")training_data_list=training_data_file.readlines()training_data_file.close()#print(n.wih)#print("")#epochs=2#for e in range(epochs):for record in training_data_list:all_values=record.split(",")inputs=(numpy.asfarray(all_values[1:])/255.0*0.99)+0.01targets=numpy.zeros(output_nodes)+0.01targets[int(all_values[0])]=0.99n.train(inputs,targets)#image_file_name=r"C:\Users\lsy\Desktop\nn\1000-1.JPG"'''img_array=scipy.misc.imread(image_file_name,flatten=True)img_data=255.0-img_array.reshape(784)image_data=(img_data/255.0*0.99)+0.01#inputs=(numpy.asfarray(image_data)/255.0*0.99)+0.01outputs=n.query(image_data)label=numpy.argmax(outputs)print(label)'''#print(n.wih)#print(len(training_data_list))#for i in training_data_list:# print(i)test_data_file=open(r"C:\Users\lsy\Desktop\nn\mnist_test.csv","r")test_data_list=test_data_file.readlines()test_data_file.close()scorecard=[]total=[0,0,0,0,0,0,0,0,0,0]rightsum=[0,0,0,0,0,0,0,0,0,0]for record in test_data_list:all_values=record.split(",")correct_lable=int(all_values[0])inputs=(numpy.asfarray(all_values[1:])/255.0*0.99)+0.01outputs=n.query(inputs)label=numpy.argmax(outputs)total[correct_lable]+=1if(label==correct_lable):scorecard.append(1)rightsum[correct_lable]+=1else:scorecard.append(0)scorecard_array=numpy.asarray(scorecard)print(scorecard_array)print("")print(scorecard_array.sum()/scorecard_array.size)print("")print(total)print(rightsum)for i in range(10):print((rightsum[i]*1.0)/total[i])#all_value=test_data_list[0].split(",")#input=(numpy.asfarray(all_value[1:])/255.0*0.99)+0.01#print(all_value[0])#image_array=numpy.asfarray(all_value[1:]).reshape((28,28))#matplotlib.pyplot.imshow(image_array,cmap="Greys",interpolation="None")#matplotlib.pyplot.show()#nn=n.query((numpy.asfarray(all_value[1:])/255.0*0.99)+0.01)#for i in nn :# print(i)

计算机毕业设计中用python神经网络编程实现手写数字识别相关推荐

  1. 【零基础】从零开始学神经网络《python神经网络编程》——手写数字识别实战

    文章目录 前言 一.机器学习是什么,深度学习是什么? 二.对NN,CNN,RNN,GNN,GAN的名词解释 三.详细介绍神经网络(NN) 1.认识神经网络 2.神经元 3.激活函数 4.权重--连接的 ...

  2. python手写数字识别实验报告_python神经网络编程实现手写数字识别

    本文实例为大家分享了python实现手写数字识别的具体代码,供大家参考,具体内容如下 import numpy import scipy.special #import matplotlib.pypl ...

  3. Python神经网络编程:手写数字的数据集MNIST

    识别人的笔迹这个问题相对复杂,也非常模糊,因此这是一种检验人工智能的理想挑战.这不像进行大量数字相乘那样明确清晰. 让计算机准确区分图像中包含的内容,有时也称之为图像识别问题.科学家对这个问题进行了几 ...

  4. Python(TensorFlow框架)实现手写数字识别系统

    手写数字识别算法的设计与实现 本文使用python基于TensorFlow设计手写数字识别算法,并编程实现GUI界面,构建手写数字识别系统.这是本人的本科毕业论文课题,当然,这个也是机器学习的基本问题 ...

  5. Python TensorFlow框架 实现手写数字识别系统

    手写数字识别算法的设计与实现 本文使用python基于TensorFlow设计手写数字识别算法,并编程实现GUI界面,构建手写数字识别系统.这是本人的本科毕业论文课题,当然,这个也是机器学习的基本问题 ...

  6. MATLAB实现数字识别系统,基于人工神经网络的MATLAB手写数字识别系统

    <基于人工神经网络的MATLAB手写数字识别系统>由会员分享,可在线阅读,更多相关<基于人工神经网络的MATLAB手写数字识别系统(8页珍藏版)>请在人人文库网上搜索. 1.基 ...

  7. 深蓝学院第二章:基于全连接神经网络(FCNN)的手写数字识别

    如何用全连接神经网络去做手写识别??? 使用的是jupyter notebook这个插件进行代码演示.(首先先装一个Anaconda的虚拟环境,然后自己构建一个自己的虚拟环境,然后在虚拟环境中安装ju ...

  8. 【TensorFlow-windows】(四) CNN(卷积神经网络)进行手写数字识别(mnist)

    主要内容: 1.基于CNN的mnist手写数字识别(详细代码注释) 2.该实现中的函数总结 平台: 1.windows 10 64位 2.Anaconda3-4.2.0-Windows-x86_64. ...

  9. PyTorch入门一:卷积神经网络实现MNIST手写数字识别

    先给出几个入门PyTorch的好的资料: PyTorch官方教程(中文版):http://pytorch123.com <动手学深度学习>PyTorch版:https://github.c ...

最新文章

  1. Codeforces Round #650 (Div. 3)(A-F1)题解
  2. 【WP7】页面过渡效果
  3. Activity的使用(七):activity的返回值
  4. Matlab中基本统计量的函数
  5. const pointer
  6. 报名倒计时 | 挣脱流量束缚,社交电商的未来在哪里?
  7. Linux 下gedit编辑器的使用
  8. 现代制造工程课堂笔记06-集成电路制造工程
  9. 天地与我并存/万物与我为一 2
  10. 电脑公司win11旗舰版32位镜像v2021.07
  11. c#怎么拟合函数得到参数_吴恩达老师课程笔记系列第32节 -正则化之代价函数(2)...
  12. C#的COM接口定义细则
  13. SSM项目使用Idea打war包
  14. VMware view client for ipad 测试
  15. atitit.web 推送实现方案集合(2)---百度云,jpush 极光推送 ,个推的选型比较.o99
  16. 记录下qcharts绘制曲线遇到的坑
  17. oracle存货管理系统,存货管理系统的功能模块有哪些?
  18. OAI搭建 eNB(2018-09最新版)
  19. Android 获取wifi列表
  20. Ping 1000个包看丢跑率

热门文章

  1. SharePoint列表下拉框优化
  2. php.ini配置文件
  3. 如何用PS软件取得色块的颜色值?
  4. 用户节点cdn有什么用处
  5. 财经法规与会计职业道德3
  6. java之单例设计模式
  7. (Life)质量和服务_由购买联想笔记本想到的
  8. 解析Java对象的equals()和hashCode()的使用
  9. 虚拟机“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题
  10. linux线上CPU100%排查