1
CNTKモデルを言語理解のチュートリアルから直接学習しようとしています。CNTKトレーニングのスピードは、各エポック後に遅くなります。
Sequential([
Embedding(emb_dim),
OneWordWindow(),
BatchNormalization(),
BiRecurrence(LSTM(hidden_dim), LSTM(hidden_dim)),
BatchNormalization(),
Dense(num_labels)
])
各エポック後にトレーニングのスピードが遅くなるようです(下記参照)。学習率のスケジュールのせいか、ここに何かがないのですか?
アダムのためのLRスケジュールは、秒あたりのサンプル数のプリントアウトに影響ProgreessPrinterに見出さバグがあった
lr_per_sample = [0.003]*4+[0.0015]*24+[0.0003]
lr_per_minibatch = [x * minibatch_size for x in lr_per_sample]
lr_schedule = learning_rate_schedule(lr_per_minibatch, UnitType.minibatch, epoch_size)
Finished Epoch[1 of 1000]: [Training] loss = 0.149485 * 18059, metric = 3.46% * 18059 10.189s (1772.3 samples per second);
Finished Epoch[2 of 1000]: [Training] loss = 0.071990 * 17974, metric = 1.47% * 17974 51.836s (346.7 samples per second);
Finished Epoch[3 of 1000]: [Training] loss = 0.106882 * 17992, metric = 2.08% * 17992 60.175s (299.0 samples per second);
Finished Epoch[4 of 1000]: [Training] loss = 0.074046 * 17987, metric = 1.51% * 17987 68.655s (262.0 samples per second);
Finished Epoch[5 of 1000]: [Training] loss = 0.052539 * 17995, metric = 1.28% * 17995 77.627s (231.8 samples per second);
Finished Epoch[6 of 1000]: [Training] loss = 0.057482 * 18011, metric = 1.55% * 18011 86.191s (209.0 samples per second);
ありがとう、エポックは実際には減速していないようでしたが、その意味がわかりませんでした。 – budha