介绍
怎么在Python中实现一个神经网络算法?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
Python的五大特点是什么
Python的五大特点:1。简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2。面向对象,与其他主要的语言如c++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。3。可移植性,Python程序无需修改就可以在各种平台上运行。4。解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5。开源,Python是牙线(自由/开放源码软件)之一。
<强> Python实现二层神经网络强>
包括输入层和输出层
#, - *安康;编码:utf-8 - * - # ! python2 import numpy  as np # sigmoid 函数 def nonlin (x,, deriv =, False): ,如果(==deriv 真正的): return 才能;x * (1 - x) ,return 1/(1 + np.exp (- x)) # input 数据集 时间=x np.array ([[0, 0, 1], ,,,(0,1,1), ,,,[1,0,1], ,,,(1,1,1)]) # output 数据集 时间=y np.array ([[0, 0, 1, 1]]) .T np.random.seed (1) # init weight 价值 syn0 =, 2 * np.random.random ((3,1)) 1 print “测试结果:“ for iter 拷贝xrange (100000):=,,l0  x ,,,,,, #, first 层,以及从而input 层=,,l1  nonlin (np.dot (l0 syn0)), #, second 层,以及从而output 层=,l1_error  y-l1=,,l1_delta  l1_error * nonlin (l1,真的) +=,syn0 np.dot (l0.T, l1_delta) print “outout after 培训:“ print l1
这里,
l0:输入层
l1:输出层
syn0:初始权值
l1_error:误差
l1_delta:误差校正系数
func nonlin:乙状结肠函数
这里迭代次数为100时,预测结果为
迭代次数为1000时,预测结果为:
迭代次数为10000,预测结果为:
迭代次数为100000,预测结果为:
<强>可见迭代次数越多,预测结果越接近理想值,当时耗时也越长。强>
<强> Python实现三层神经网络强>
包括输入层,隐含层和输出层
#, - *安康;编码:utf-8 - * - # ! python2 import numpy  as np def nonlin (x,, deriv =, False): ,如果(==deriv 真正的): return 才能;x * (1 - x) ,其他的: return 才能;1/(1 + np.exp (- x)) # input 数据集 时间=X np.array ([[0, 0, 1], ,,,(0,1,1), ,,,[1,0,1], ,,,(1,1,1)]) # output 数据集 时间=y np.array ([[0, 1, 1, 0]]) .T syn0 =, 2 * np.random.random((3、4),安康;1,#,first-hidden layer weight 价值 syn1 =, 2 * np.random.random((4,1)),安康;1,#,hidden-output layer weight 价值 print “测试结果:“ for j 拷贝范围(60000):=,,l0  X ,,,,, #, first 层,以及从而input 层=,,l1  nonlin (np.dot (l0 syn0)), #, second 层,以及从而hidden 层=,,l2  nonlin (np.dot (l1, syn1)), #, third 层,以及从而output 层=,,l2_error  y-l2 , #, hidden-output layer 错误 ,如果(j % 10000)==, 0: print 才能“错误:“+ str (np.mean (l2_error))=,,l2_delta  l2_error * nonlin (l2, deriv =, True)=,,l1_error  l2_delta.dot (syn1.T),, #, first-hidden layer 错误=,,l1_delta  l1_error * nonlin (l1, deriv =, True) +=,syn1 l1.T.dot (l2_delta) +=,syn0 l0.T.dot (l1_delta) print “outout after 培训:“ print l2
运行结果:
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。