1

我正在 R 中训练循环神经网络 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)

每次我运行它时,即使对于同一组输入参数(如大小、learnFunParams),预测值也会不同。如何为相同的参数值获得相同的预测值?

4

2 回答 2

2

在代码开头包含以下行:

set.seed(1)

神经网络使用随机初始值,并且可以收敛到局部最小值。因此设置一个种子,生成相同的随机初始值,并且每次都得到相同的神经网络。

于 2012-06-19T21:49:26.260 回答
0

这是因为每次使用时网络的内存都会发生变化predict

Elman 网络根据输入加上前一个时间步的一组隐藏单元的状态来预测输出。因此,网络的“记忆”会随着您的使用而改变predict。第二次使用predict网络的“新”内存与(在您的情况下,相同的)输入一起使用来预测新值。

重置网络记忆“及时”的技巧,使用来自训练样本的输入预测(训练)目标。

于 2016-10-14T12:39:14.703 回答