我正在通过执行以下命令在 Ubuntu 16.04 LTS x64 和 4 Nvidia GeForce GTX 1080 上的 Common Voice 数据集上训练 Mozilla DeepSpeech:
./DeepSpeech.py --train_files data/common-voice-v1/cv-valid-train.csv \
--dev_files data/common-voice-v1/cv-valid-dev.csv \
--test_files data/common-voice-v1/cv-valid-test.csv \
--log_level 0 --train_batch_size 20 --train True \
--decoder_library_path ./libctc_decoder_with_kenlm.so \
--checkpoint_dir cv001 --export_dir cv001export \
--summary_dir cv001summaries --summary_secs 600 \
--wer_log_pattern "GLOBAL LOG: logwer('${COMPUTE_ID}', '%s', '%s', %f)" \
--validation_step 2
它使用了 4 个 GPU 中的 80% 以上。
但是,如果我添加--display_step 2
参数,它会显着减慢训练时间,并且它使用不到 4 个 GPU 的 20%。
这让我感到惊讶,因为它--display_step
被描述为:
tf.app.flags.DEFINE_integer ('validation_step', 0, '我们在验证模型之前循环的时期数 - 详细的进度报告取决于“--display_step” - 0 表示没有验证步骤')
所以根据我的理解,模型应该每 2 个 epoch 评估一次,因此不应该减慢训练时间(即,它应该每 2 个 epoch 增加一些评估时间)。
为什么添加--display_step 2
参数会显着减慢 Mozilla DeepSpeech 训练时间?