python实现简单神经网络算法,供大家参考,具体内容如下
<强> 强>
包括输入层和输出层
进口numpy np #乙状结肠函数 def nonlin (x,引出=False): 如果(引出==True): 返回x * (1 - x) 返回1/(1 + np.exp (- x)) #输入数据集 x=np.array ([[0, 0, 1], (0,1,1), [1,0,1], (1,1,1)]) #输出数据集 y=np.array ([[0, 0, 1, 1]]) .T np.random.seed (1) # init重量值 syn0=2 * np.random.random ((3,1)) 1 对iter xrange (100000): l0=x #第一层,输入层 l1=nonlin (np.dot (l0 syn0)) #第二层,和输出层 l1_error=y-l1 l1_delta=l1_error * nonlin (l1,真的) syn0 +=np.dot (10。T, l1_delta) 培训后打印”文稿:“ 打印l1 >之前进口numpy np #乙状结肠函数 def nonlin (x,引出=False): 如果(引出==True): 返回x * (1 - x) 返回1/(1 + np.exp (- x)) #输入数据集 x=np.array ([[0, 0, 1], (0,1,1), [1,0,1], (1,1,1)]) #输出数据集 y=np.array ([[0, 0, 1, 1]]) .T np.random.seed (1) # init重量值 syn0=2 * np.random.random ((3,1)) 1 对iter xrange (100000): l0=x #第一层,输入层 l1=nonlin (np.dot (l0 syn0)) #第二层,和输出层 l1_error=y-l1 l1_delta=l1_error * nonlin (l1,真的) syn0 +=np.dot (10。T, l1_delta) 培训后打印”文稿:“ 打印l1这里,
10:输入层l1:输出层
syn0:初始权值
l1_error:误差
l1_delta:误差校正系数
func nonlin:乙状结肠函数
可见迭代次数越多,预测结果越接近理想值,当时耗时也越长。
包括输入层,隐含层和输出层
进口numpy np def nonlin (x,引出=False): 如果(引出==True): 返回x * (1 - x) 其他: 返回1/(1 + np.exp (- x)) #输入数据集 X=np.array ([[0, 0, 1], (0,1,1), [1,0,1], (1,1,1)]) #输出数据集 y=np.array ([[0, 1, 1, 0]]) .T syn0=2 * np.random.random ((3、4)) - 1 # first-hidden层重量值 syn1=2 * np.random.random ((4,1)) - 1 # hidden-output层重量值 范围的j (60000): l0=X #第一层,输入层 l1=nonlin (np.dot (l0 syn0)) #第二层,和隐藏层 (l1, l2=nonlin (np.dot syn1)) #第三层和输出层 l2_error=y-l2 # hidden-output层错误 如果(j % 10000)==0: 打印“错误:”+ str (np.mean (l2_error)) l2_delta=l2_error * nonlin (l2,引出=True) l1_error=l2_delta.dot (syn1.T) # first-hidden层错误 l1_delta=l1_error * nonlin (l1,引出=True) syn1 +=l1.T.dot (l2_delta) syn0 +=l0.T.dot (l1_delta) 培训后打印”文稿:“ 打印l2进口numpy np def nonlin (x,引出=False): 如果(引出==True): 返回x * (1 - x) 其他: 返回1/(1 + np.exp (- x)) #输入数据集 X=np.array ([[0, 0, 1], (0,1,1), [1,0,1], (1,1,1)]) #输出数据集 y=np.array ([[0, 1, 1, 0]]) .T syn0=2 * np.random.random ((3、4)) - 1 # first-hidden层重量值 syn1=2 * np.random.random ((4,1)) - 1 # hidden-output层重量值 范围的j (60000): l0=X #第一层,输入层 l1=nonlin (np.dot (l0 syn0)) #第二层,和隐藏层 (l1, l2=nonlin (np.dot syn1)) #第三层和输出层 l2_error=y-l2 # hidden-output层错误 如果(j % 10000)==0: 打印“错误:”+ str (np.mean (l2_error)) l2_delta=l2_error * nonlin (l2,引出=True) l1_error=l2_delta.dot (syn1.T) # first-hidden层错误 l1_delta=l1_error * nonlin (l1,引出=True) syn1 +=l1.T.dot (l2_delta) syn0 +=l0.T.dot (l1_delta) 培训后打印”文稿:“ 打印l2以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
python实现简单神经网络算法