Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何存储在循环中找到的值?_Python_Arrays_Numpy_Neural Network_Tensor - Fatal编程技术网

Python 如何存储在循环中找到的值?

Python 如何存储在循环中找到的值?,python,arrays,numpy,neural-network,tensor,Python,Arrays,Numpy,Neural Network,Tensor,我试图运行多个嵌套循环,然后根据循环中的条件检索一个值数组。我有14个alpha值需要测试,每个on都需要测试1,2,3,4,5,6的历元。当我测试所有6个历元的每个alpha值时,我想记录误差小于0.05的次数。最后,我想要一个2D数组,其中的行表示14个不同的alpha值,每列表示一个不同的历元值 我想知道是否有更好的方法,然后使用带numpy的张量。当我尝试扩展这个项目时,使用这种方法会给我带来很多问题 对于感兴趣的人来说,这只是一个2输入、单隐层、输出的神经网络,用于自学反向传播。我提交

我试图运行多个嵌套循环,然后根据循环中的条件检索一个值数组。我有14个alpha值需要测试,每个on都需要测试1,2,3,4,5,6的历元。当我测试所有6个历元的每个alpha值时,我想记录误差小于0.05的次数。最后,我想要一个2D数组,其中的行表示14个不同的alpha值,每列表示一个不同的历元值

我想知道是否有更好的方法,然后使用带numpy的张量。当我尝试扩展这个项目时,使用这种方法会给我带来很多问题

对于感兴趣的人来说,这只是一个2输入、单隐层、输出的神经网络,用于自学反向传播。我提交的代码是针对2个神经元的,但我现在正试图将其扩展到4个,最终是n个神经元。存储错误值并计算在2D数组中输出的成功率,在那里我可以看到什么alpha和epoch对产生最好的结果,这将非常有帮助

在使用此代码之前,我已完成此任务:

将numpy导入为np
对于范围(0,14)内的l:
α=[0.001,0.002,0.003,0.004,0.005,0.006,0.007,0.008,0.009,0.01,0.02,0.03,0.04,0.05]
nEpoch=1
对于范围(0,6)内的n:
NSACCESS=0
w11f=np.零(奈波赫*恩特拉因)
w12f=np.零(nEpoch*nTrain)
对于范围(0,50)内的j:
w11=0.5-np.random.rand();
w12=0.5-np.random.rand();
w21=0.5-np.random.rand();
w22=0.5-np.random.rand();
w31=0.5-np.random.rand();
w32=0.5-np.random.rand();
w41=0.5-np.random.rand();
w42=0.5-np.random.rand();
b4=0.5-np.random.rand();
b3=0.5-np.random.rand();
b2=0.5-np.random.rand();
b1=0.5-np.random.rand();
ww1=0.5-np.random.rand();
ww2=0.5-np.random.rand();
ww3=0.5-np.random.rand();
ww4=0.5-np.random.rand();
bb=0.5-np.random.rand();
sp=随机样本(a,nTrain+nTest)
p=0
对于范围内的历元(0,nEpoch):
对于范围内的i(0,N):
y1=b1+w11*x[sp[i],0]+w12*x[sp[i],1]
y2=b2+w21*x[sp[i],0]+w22*x[sp[i],1]
y3=b3+w31*x[sp[i],0]+w32*x[sp[i],1]
y4=b4+w41*x[sp[i],0]+w42*x[sp[i],1]
dxx1=y1>0
xx1=y1*dxx1
dxx2=y2>0
xx2=y2*dx2
dxx3=y3>0
xx3=y3*dxx3
dx4=y4>0
xx4=y4*dxx4
yy=bb+ww1*xx1+ww2*xx2+ww3*xx3+ww4*xx4
yy=yy>0
e=t[sp[i]]-yy
#更新参数
ww1=ww1+alpha[l]*e*xx1
ww2=ww2+alpha[l]*e*xx2
ww3=ww3+alpha[l]*e*xx3
ww4=ww4+alpha[l]*e*xx4
bb=bb+alpha[l]*e
w11=w11+alpha[l]*e*ww1*dxx1*x[sp[i],0]
w12=w12+alpha[l]*e*ww1*dxx1*x[sp[i],1]
w21=w21+alpha[l]*e*ww2*dxx2*x[sp[i],0]
w22=w22+alpha[l]*e*ww2*dxx2*x[sp[i],1]
w31=w31+alpha[l]*e*ww3*dxx3*x[sp[i],0]
w32=w32+alpha[l]*e*ww3*dxx3*x[sp[i],1]
w41=w41+alpha[l]*e*ww4*dxx4*x[sp[i],0]
w42=w42+alpha[l]*e*ww4*dxx4*x[sp[i],1]
b1=b1+alpha[l]*e*ww1*dxx1
b2=b2+alpha[l]*e*ww2*dxx2
b3=b3+alpha[l]*e*ww3*dxx3
b4=b4+alpha[l]*e*ww4*dxx4
w11f[p]=w11
w12f[p]=w12
p=p+1
er=0
对于范围内的k(nTrain,nTrain+nTest):
y1=b1+w11*x[sp[i],0]+w12*x[sp[i],1]
y2=b2+w21*x[sp[i],0]+w22*x[sp[i],1]
y3=b3+w31*x[sp[i],0]+w32*x[sp[i],1]
y4=b4+w41*x[sp[i],0]+w42*x[sp[i],1]
dxx1=y1>0
xx1=y1*dxx1
dxx2=y2>0
xx2=y2*dx2
dxx3=y3>0
xx3=y3*dxx3
dx4=y4>0
xx4=y4*dxx4
yy=bb+ww1*xx1+ww2*xx2+ww3*xx3+ww4*xx4
yy=yy>0
e=abs(t[sp[k]]-yy)
er=er+e#累积误差
er=er/nTest#计算平均误差
er_List[l,j,n]=er
如果er_列表[l,j,n]<0.05:
NSACCESS=NSACCESS+1
#第C部分-创建一个数组,其中包含每个
#阿尔法和历元值对
NSACCESS#U数组[l,n]=包含成功的NSACCESS#数组
如果nEpoch<6:
nEpoch+=1

您不喜欢的工作方式是什么?关于你的代码,我还有很多其他的评论,但是错误检查对我来说很好。顺便说一下,nsucess_数组之前没有在代码段中定义;这种做法违背了我们的目的NumPy@AndrewHolmgren谢谢你的回复!我没有把所有的代码都贴出来