我正在训练R中的Recurring神经网络elman
nn4< - elman(norm_traindata4,trsignals,size = 10,initFuncparams = iniweight,linOut = FALSE,maxit = 1000, learnFunfParams = 0.01,inputsTest = norm_testdata4,targetsTest = tesignals)
预测=预测(nn4,norm_testdata4)
每次我运行它,即使对于相同的输入参数集,例如size,learnFunParams,预测值也是不同的。如何获得相同参数值的相同预测值?
答案 0 :(得分:2)
在代码的开头加入以下行:
set.seed(1)
神经网络使用随机初始值,并且可以收敛到局部最小值。 因此,设置种子,生成相同的随机初始值,每次都获得相同的神经网络。
答案 1 :(得分:0)
这是因为每次使用predict
时网络内存都会发生变化。
Elman网络根据输入加上前一时间步骤中一组隐藏单位的状态来预测输出。因此,只要您使用predict
,网络的“内存”就会发生变化。第二次使用predict
新的'网络的存储器与(在你的情况下,相同的)输入一起用于预测新值。
重置网络记忆的技巧'使用训练样本中的输入预测(训练)目标。