声明:代码和数据集均来自网络,仅供自己学习。侵删。
上次学习了一般的神经网络。这次找个实际的操刀,学习一下。
数据库来源:
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