Hiroshiba / become-yukarin

Convert your voice to favorite voice
https://hiroshiba.github.io/blog/became-yuduki-yukari-with-deep-learning-power/
MIT License
576 stars 88 forks source link

GPUメモリとbatchsizeと学習速度との関係について #66

Closed BURI55 closed 5 years ago

BURI55 commented 5 years ago

GTX1070ti(GPUメモリ8GB)を使って、become-yukarinでWindowsで第二段階の学習をさせています。

config_sr.jsonのbatchsizeの数でGPUメモリの使用量が決まってきますが、学習速度には影響があるのでしょうか?

以前、パラメータの意味について #53にて、

iterationやbatchsizeは機械学習の基礎なため、説明を省きます。 とのことなので、まだよくわかっていないところがあります。

私が試した限りでは、GPUメモリ8GBだと、batchsizeは4が適当のようです。しかしスピード的にはbatchsizeが2のほうが速いように思えますが、いかがでしょうか?

マルチプロセスbatchsize2でのlogがこちら、

"iteration": 500, "elapsed_time": 464.3360525

マルチプロセスbatchsize4でのlogはこちら

"iteration": 500, "elapsed_time": 631.3390287000001

シングルプロセスbatchsize2のlogがこちら

"iteration": 500, "elapsed_time": 569.7842606

あれ?シングルプロセスより遅くなった? GPUメモリクロックアップマルチプロセスbatchsize4でのlogはこちら "iteration": 500, "elapsed_time": 612.0234137 少しだけ速くなったかな

それとも、学習速度は500イテレーションでは確認できないんでしょうか?

Hiroshiba commented 5 years ago

一般に、バッチサイズを小さくしたほうが、イテレーションあたりの処理データ数が減るので学習は早く進むはずです。 しかし、最終的なクオリティも、どうやらバッチサイズで変わってくることもあると思います。 バッチサイズを小さくして素早く学習してみて、変換結果のクオリティが足りなそうなら、バッチサイズを大きくして試すのも良いと思います。