NG 神经网络 构建网络基础
来源:互联网 发布:js 如何弹出模态框 编辑:程序博客网 时间:2024/06/04 00:53
import numpy as npimport pandas as pd # 两层神经网络# sigmoid 函数 输出0-1 分界为0.5print('-----------------------------两层神经网络-----------------------------------')def nonlin(x,deriv=False): if(deriv==True): return x*(1-x) return 1/(1+np.exp(-x))X = np.array([ [1,0,0], [1,0,1], [1,1,0], [1,1,1] ])y = np.array([[0,0,0,1]]).T# 为你的随机数设定产生种子是一个良好的习惯np.random.seed(1)# 下面目的矩阵的值从 0->1 扩充到 -1 -> 1syn0 = 2*np.random.random((3,1)) - 1# print(syn0) # for iter in range(10000):for j in range(100000): l0 = X l1 = nonlin(np.dot(l0,syn0)) l1_error = y - l1 # # 误差控制 if (j% 1000) == 0: print ("Error:" + str(np.mean(np.abs(l1_error)))) # # 精度控制 if (np.mean(np.abs(l1_error))<=0.01): print('迭代次数:',j,' 迭代精度:',np.mean(np.abs(l1_error))) break l1_delta = l1_error * nonlin(l1,True) # update weights syn0 += np.dot(l0.T,l1_delta)# print(syn0) #输出权值l0=np.array([[1,0,1], [1,1,0], [1,0,0], [1,1,1]])l1 = nonlin(np.dot(l0,syn0))print(l1)print(l1[l1<=0.5])print(l1[l1>0.5])print('\n\n\n-----------------------------三层神经网络-----------------------------------')# 三层神经网络import numpy as np def nonlin(x,deriv=False): if(deriv==True): return x*(1-x) return 1/(1+np.exp(-x)) X = np.array([[1,0,0], [1,0,1], [1,1,0], [1,1,0], [1,1,1]]) y = np.array([[1], [0], [0], [0], [1]]) np.random.seed(1) syn0 = 2*np.random.random((3,3)) - 1syn1 = 2*np.random.random((3,1)) - 1 for j in range(100000): l0 = X l1 = nonlin(np.dot(l0,syn0)) l2 = nonlin(np.dot(l1,syn1)) l2_error = y - l2 if (j% 1000) == 0: print ("Error:" + str(np.mean(np.abs(l2_error)))) # 精度控制 if (np.mean(np.abs(l2_error))<=0.01): print('迭代次数:',j,' 迭代精度:',np.mean(np.abs(l1_error))) break l2_delta = l2_error*nonlin(l2,deriv=True) l1_error = l2_delta.dot(syn1.T) l1_delta = l1_error * nonlin(l1,deriv=True) syn1 += l1.T.dot(l2_delta) syn0 += l0.T.dot(l1_delta)# print(syn0)# print(syn1)l0=np.array([[1,0,1], [1,1,0], [1,0,0], [1,1,1]])l1 = nonlin(np.dot(l0,syn0))l2 = nonlin(np.dot(l1,syn1))print(l2)print(l2[l2<=0.5])print(l2[l2>0.5])print('\n\n\n-----------------------------四层神经网络-----------------------------------')# 四层神经网络import numpy as np def nonlin(x,deriv=False): if(deriv==True): return x*(1-x) return 1/(1+np.exp(-x))A = pd.read_table('DATA/01.txt',header=None,usecols = (0,1,2))A.insert(0,'insert',1)X = np.array(A.iloc[:,:3])y = np.array(A.iloc[:,3:4]) np.random.seed(1) syn0 = 2*np.random.random((3,3)) - 1syn1 = 2*np.random.random((3,3)) - 1syn2 = 2*np.random.random((3,1)) - 1 for j in range(100000): l0 = X l1 = nonlin(np.dot(l0,syn0)) l2 = nonlin(np.dot(l1,syn1)) l3 = nonlin(np.dot(l2,syn2)) l3_error = y - l3 if (j% 1000) == 0: print ("Error:" + str(np.mean(np.abs(l3_error)))) if (np.mean(np.abs(l3_error))<=0.05): print('迭代次数:',j,' 迭代精度:',np.mean(np.abs(l1_error))) break l3_delta = l3_error*nonlin(l3,deriv=True) l2_error = l3_delta.dot(syn2.T) l2_delta = l2_error * nonlin(l2,deriv=True) l1_error = l2_delta.dot(syn1.T) l1_delta = l1_error * nonlin(l1,deriv=True) syn2 += l2.T.dot(l3_delta) syn1 += l1.T.dot(l2_delta) syn0 += l0.T.dot(l1_delta)# print(syn0)# print(syn1)# print(syn2)l0=np.array([[1,0.089392,-0.715300], [1,1.825662,12.693808], [1,0.197445,9.744638], [1,0.126117,0.922311], [1,-0.679797,1.220530], [1,0.677983,2.556666], [1,0.761349,10.693862], [1,-2.168791,0.143632], [1,1.388610,9.341997], [1,0.317029,14.739025]])l1 = nonlin(np.dot(l0,syn0))l2 = nonlin(np.dot(l1,syn1))l3 = nonlin(np.dot(l2,syn2))print(l3)print(l3[l3<=0.5])print(l3[l3>0.5])
运行结果:
-----------------------------两层神经网络-----------------------------------
Error:0.48455077551
Error:0.0444677826081
Error:0.030464932497
Error:0.0245163114868
Error:0.021047011697
Error:0.018712592658
Error:0.0170066660447
Error:0.0156909428592
Error:0.0146368034625
Error:0.0137679855874
Error:0.0130360570615
Error:0.0124086017331
Error:0.0118630036373
Error:0.011382943945
Error:0.0109563148428
Error:0.0105739196651
Error:0.0102286316631
迭代次数: 16720 迭代精度: 0.00999979932783
[[ 1.25591557e-02]
[ 1.25591557e-02]
[ 2.44323537e-06]
[ 9.85121557e-01]]
[ 1.25591557e-02 1.25591557e-02 2.44323537e-06]
[ 0.98512156]
-----------------------------三层神经网络-----------------------------------
Error:0.500155707366
Error:0.139453935606
Error:0.122485366567
Error:0.117028663527
Error:0.114165642814
Error:0.112349173826
Error:0.111073027379
Error:0.110118071989
Error:0.109372821772
Error:0.108774431307
Error:0.108285202662
Error:0.107882132055
Error:0.107552284458
Error:0.10729177679
Error:0.10710909487
Error:0.107039343253
Error:0.107204216676
Error:0.108195139925
Error:0.115919208648
Error:0.0408730192789
Error:0.021173625565
Error:0.0158654395695
Error:0.0132249633003
Error:0.011583602561
Error:0.0104387131983
迭代次数: 24480 迭代精度: 0.00112745925828
[[ 0.01166526]
[ 0.00817161]
[ 0.98937065]
[ 0.98864111]]
[ 0.01166526 0.00817161]
[ 0.98937065 0.98864111]
-----------------------------四层神经网络-----------------------------------
Error:0.510382052745
Error:0.344920246032
Error:0.344098705164
Error:0.34406983332
Error:0.343733532198
Error:0.38199380191
Error:0.343919702086
Error:0.343688201419
Error:0.343573446133
Error:0.343500887387
Error:0.343449556065
Error:0.343410719024
Error:0.343407265729
Error:0.343358796411
Error:0.343337062547
Error:0.343318573148
Error:0.343308769237
Error:0.343291086203
Error:0.343278328402
Error:0.343304086848
Error:0.343258805497
Error:0.343249187118
Error:0.34324409514
Error:0.343235505955
Error:0.34322668064
Error:0.343406238303
Error:0.343215086551
Error:0.343215673114
Error:0.343209060337
Error:0.343231628407
Error:0.343200462597
Error:0.343393402134
Error:0.343938548093
Error:0.344008045469
Error:0.343369481325
Error:0.343247676782
Error:0.0550039251298
Error:0.358934335169
Error:0.309997493342
Error:0.309684307143
Error:0.30952781002
Error:0.0759738463756
Error:0.0754937800216
Error:0.075259478761
Error:0.0751518820373
Error:0.0751052314702
Error:0.0750852374849
Error:0.0750774899474
Error:0.0750766860016
Error:0.075082706627
Error:0.0751031586632
Error:0.0751711078183
Error:0.0753521458048
Error:0.0752120478988
Error:0.0749374228862
Error:0.0748046319331
Error:0.074742342494
Error:0.0747056699884
Error:0.074682178081
Error:0.0746661992771
Error:0.0746547193987
Error:0.0746459925235
Error:0.0746388999338
Error:0.0746324531551
Error:0.0746257121214
迭代次数: 64771 迭代精度: 0.00180964757764
[[ 0.99992396]
[ 0.04432726]
[ 0.04432726]
[ 0.99992395]
[ 0.99992393]
[ 0.99992276]
[ 0.04432726]
[ 0.99992395]
[ 0.04432726]
[ 0.04432726]]
[ 0.04432726 0.04432726 0.04432726 0.04432726 0.04432726]
[ 0.99992396 0.99992395 0.99992393 0.99992276 0.99992395]
***Repl Closed***
- NG 神经网络 构建网络基础
- tf5. 构建基础网络
- 神经网络入门之构建多层网络
- ng机器 神经网络 应用
- NG 神经网络 多分类
- 用TensorFlow构建基础的神经网络(一):MLP
- 用TensorFlow构建基础的神经网络(二):LeNet-5
- 用TensorFlow构建基础的神经网络(三):AlexNet
- 《深度学习Ng》课程学习笔记01week2——神经网络基础
- Andrew Ng's deeplearning Course1Week2 Neural Networks Basics(神经网络基础)
- crosstool-ng构建交叉编译器
- 神经网络基础:七种网络单元,四种层连接方式
- 神经网络基础
- 神经网络基础
- 神经网络基础
- 神经网络基础
- 神经网络基础
- 神经网络基础
- Unity
- Mootools.js的Class.mutators
- PHP中的 抽象类(abstract class)和 接口(interface)
- 机器学习中几个常见模型的优缺点
- Android攻城狮的第二门课(第3季)第3章 数据存储之文件存储
- NG 神经网络 构建网络基础
- 自有事务和推导事务相互转换
- 算法基础
- 安卓设置的修改
- (HDU
- Unity LayerMask的位运算
- SEO技术问答:网站被黑被劫持了怎么办
- Tensorflow学习: Slim tutorial
- HAWQ + MADlib 玩转数据挖掘之(十)——图算法之单源最短路径