我正在做的时间序列预测与Matlab的神经网络工具箱使用层的经常性网络(layrecnet
)与layerDelays = 1:2
和hiddenSize = 5
(我已经使用其他几个大小为一个隐藏层类似的结果)。我修改了网络采取多个输入(最多5或10)和相关的更改为net.inputConnect
,它的工作原理(也就是说,我可以训练它有很好的结果)。Matlab神经网络 - 除法作为divideFcn
只要我改变divideFcn
从默认到divideblock
它不再工作,给我这个错误在运行train
功能:
Error in divideblock>divide_indices (line 108)
testInd = (1:numTest)+valInd(end);
Error in divideblock (line 65)
[out1,out2,out3] = divide_indices(in1,params);
Error in nntraining.setup (line 176)
[trainInd,valInd,testInd] =
feval(net.divideFcn,Q,net.divideParam);
Error in network/train (line 292)
[net,rawData,tr,err] =
nntraining.setup(net,net.trainFcn,X,Xi,Ai,T,EW,~isGPUArray);
通过调试模式下,我发现valInd
是一个空数组,这由(内置)nntraining.setup()
函数中的值Q
确定。 Q
由我无法访问的另一个函数(nntraining.config
)设置。现在,显然我不认为这些函数中存在错误,但我试图通过追溯问题来找出错误。现在我在墙上。
这可以归结为两个问题
我想用
divideblock
代替dividerand
因为我想层延迟利用信号的时间结构的(这是高度周期性 - 时腿关节角度步行)。我错认为dividerand
将无法利用这个时间结构?train
函数是如何与divideblock
交互的,这意味着我需要改变一些关于我的数据格式的内容吗?
非常感谢!
感谢您记录您的答案;我遇到过同样的问题。 – mhopeng