晚上学习了BP算法,感觉蛮简单美滋滋地去用python实现。结果一搞就是很久…悲愤之中于这篇文章中列举实现过程中遇到的大坑引以为戒!
1.自定义的sigmod函数
为了书写方便,自定义了sigmod函数,传入数组,进行sigmod函数运算后返回。
import numpy as np
def sigmod(y):
for i in range(len(y)):
y[i] = 1.0 / (1.0+np.exp(-y[i]))
return y
#穿入的y
y1 = np.array([973,202,77,541,59,796,429,187,131,63,853,938,40,256,738,335,77,357,
114,308,100,210,906,10,12,677,181,710,250,30,594,936,160,133,83,909,
222,71,42,43,591,763,33,240,479,839,144,102,27,137,9,22,65,9,220,80,
25,535,216,721,794,161,63,186,22,466,35,49,463,18,354,871,638,367,216,
223,818,68,38,208,604,435,47,434,135,29,710,62,457,353,899,79,64,44,
39,512,119,105,114,148])
#sigmod运算
s1 = sigmod(y1)
print(s1)
#输出
[1 1 1 1 1 1 1 1 1