我正在做的時間序列預測與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