python实现简单神经网络算法

  

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:乙状结肠函数

  

 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, 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实现简单神经网络算法