变量输入是锯齿状数组,即90 x 600。
理想也是90 x 1的锯齿状阵列
BeginTraining()
{
FeedforwardNetwork network = new FeedforwardNetwork();
network.AddLayer(new FeedforwardLayer(600));
network.AddLayer(new FeedforwardLayer(1000));
network.AddLayer(new FeedforwardLayer(90));
network.Reset();
// train the neural network
Train train = new HeatonResearchNeural.Feedforward.Train.Backpropagation.Backpropagation(network, input, ideal,
0.7, 0.9);
int epoch = 1;
do
{
lblNoEpochs.Text= epoch.ToString();
lblNoEpochs.Update();
train.Iteration();
lblPcError.Text = train.Error.ToString();
lblPcError.Update();
epoch++;
} while((epoch < 5000) && (train.Error > 0.001));
// test the neural network
for (int i = 0; i < input.Length; i++)
{
//testing code
}
每个时期至少需要5分钟。
如何缩短这段时间?
答案 0 :(得分:1)
嗯,我认为你可以:
根据需要重复。
答案 1 :(得分:1)
我认为真正的问题是 - do / while可以并行吗?
只要我知道训练波依赖于彼此,所以接下来取决于前一个的结果。因此排序绝对是必须的。
所以我认为答案是 - 这不可能更快。