验证方法:
(一)使用网络升段 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的一个回合。
至于动态网络:有时间再做。
训练整个数据集的次数。
当一个 完整的 数据集通过了神经网络一次并且返回了一次,这个过程称为一次epoch。(也就是说,所有训练样本在神经网络中都进行了一次正向传播 和一次反向传播 )
然而,当一个Epoch的样本(也就是所有的训练样本)数量可能太过庞大(对于计算机而言),就需要把它分成多个小御旅戚块,也就是就是分成镇猛多个Batch 来进行训练。
将整个训练样本分成若干个Batch。
每批样本的大小。
训练一镇陵个Batch就是一次Iteration(这个概念跟程序语言中的迭代器相似)。
mnist 数据集有60000张图片作为训练数据,10000张图片作为测试数据。假设现在选择 Batch_Size = 100对模型进行训练。迭代30000次。
参考: https://www.jianshu.com/p/22c50ded4cf7
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)