验证方法:
(一)使用网络 linearlayer
1,cell输入形式
输入 P={[12] [21] [23] [31]}
目标值 T={4 5 7 7}
使用adapt
输入命令:
P={[12] [21] [23] [31]}
T={4 5 7 7}
net=linearlayer(0,0.1)
net=configure(net,P,T)
net.IW{1,1}=[0,0]
net.b{1}=0
[net,a,e]=adapt(net,P,T)
权重更新4次,最后值:
net.IW{1,1}= 1.56001.5200
net.b{1}=0.9200
仿真结果:[0][2][6.0000][5.8000]
2,矩阵输入形式
输入P=[1 2 2 32 1 3 1]
输出T=[4 5 7 7]
使用adapt
输入命令:
P=[1 2 2 32 1 3 1]
T=[4 5 7 7]
net=linearlayer(0,0.01)
net=configure(net,P,T)
net.IW{1,1}=[0,0]
net.b{1}=0
[net,a,e]=adapt(net,P,T)
权重更新一次,最后值:
net.IW{1,1}=0.49000.4100
net.b{1}= 0.2300
3,矩阵输入形式
输入P=[1 2 2 32 1 3 1]
输出T=[4 5 7 7]
使用train(其中设置epochs=1)
前提:对学习函数和训练函数加入显式的调用命令;
P=[1 2 2 32 1 3 1]
T=[4 5 7 7]
net=linearlayer(0,0.01)
net=configure(net,P,T)
net.IW{1,1}=[0,0]
net.b{1}=0
net=trian(net,P,T)
权重更新一次,最后值:
net.IW{1,1}=0.49000.4100
net.b{1}= 0.2300
结论:对于静态网络而言linearlayer,adapt的cell输入为在线学习,而矩阵输入为离线学习相当于train的一个回合。
至于动态网络:有时间再做。
你这个程序每次大循环都输出一次A,你是想让这些A矩阵相加吧?clcclearsymsa
b
c
depoch=0sum=zeros(6)for
i=1:5
for
a=1:2
for
b=1:2
k=[1
-1-1
1]
B=[1
44
22
55
33
6]
c=B(i,a)
d=B(i,b)
A=zeros(6)
A(c,d)=k(a,b)
epoch=epoch+1
sum=sum+A
end
endend红色部分是我加上的,epoch部分是个循环的计数,可有可无
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)