【发布时间】:2014-02-06 01:08:36
【问题描述】:
我有非常大的火车,所以 Matlab。而且我需要进行大规模的培训。
是否可以将训练集拆分为多个部分并迭代训练网络并在每次迭代时更新“网络”而不是覆盖它?
下面的代码显示了这个想法,它不会工作。在每次迭代中,它会根据唯一经过训练的数据集更新网络。
TF1 = 'tansig';TF2 = 'tansig'; TF3 = 'tansig';% layers of the transfer function , TF3 transfer function for the output layers
net = newff(trainSamples.P,trainSamples.T,[NodeNum1,NodeNum2,NodeOutput],{TF1 TF2 TF3},'traingdx');% Network created
net.trainfcn = 'traingdm' ; %'traingdm';
net.trainParam.epochs = 1000;
net.trainParam.min_grad = 0;
net.trainParam.max_fail = 2000; %large value for infinity
while(1) // iteratively takes 10 data point at a time.
p %=> get updated with following 10 new data points
t %=> get updated with following 10 new data points
[net,tr] = train(net, p, t,[], []);
end
【问题讨论】:
-
你怎么知道它是覆盖而不是更新?您能否展示一些数据示例,因为我不太明白“在每次迭代中,它会根据唯一经过训练的数据集更新网络”是什么意思?谢谢
-
我在时间序列中使用神经网络来预测多个点(90)。如果我使用 train(),在每次迭代中它都会覆盖到已经训练过的部分。我通过比较我的预测值和实际值来观察它。随着时间的推移,没有任何改善,我的预测仅基于经过训练的一小部分数据。我认为迭代训练它比训练 1,000,000 个数据点更有效。目前我正在尝试 adapt() 函数,但我的预测没有任何改进。那是我的问题//adapter() 是否可能。谢谢。
-
预测仅基于训练数据。在我的每次迭代训练中,我都无法看到之前训练过的数据的模式或行为。
标签: matlab machine-learning neural-network large-scale training-data