このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン最新のリビジョン両方とも次のリビジョン |
mediapipe:モデル学習 [2023/09/19 14:52] – baba | mediapipe:モデル学習 [2023/09/30 22:30] – [Multiple GPU] baba |
---|
* https://developers.google.com/mediapipe/solutions/vision/object_detector/customize | * https://developers.google.com/mediapipe/solutions/vision/object_detector/customize |
| |
| ===== Multiple GPU ===== |
GPUを利用刷る場合、上記で設定がうまく行っていればそのままGPUで学習が始まる。一方で複数GPUを持っている場合は、別途オプションを設定する必要がある。 | GPUを利用刷る場合、上記で設定がうまく行っていればそのままGPUで学習が始まる。一方で複数GPUを持っている場合は、別途オプションを設定する必要がある。 |
https://developers.google.com/mediapipe/solutions/customization/object_detector#hyperparameters このページでパラメーターの一覧が確認できる。この中のHParamsで学習時の設定ができるが、実はこのページではどのように複数GPUを利用刷るかがわからない。そこで、より細かいAPIページを参照する必要がある。 具体的には | https://developers.google.com/mediapipe/solutions/customization/object_detector#hyperparameters このページでパラメーターの一覧が確認できる。この中のHParamsで学習時の設定ができるが、実はこのページではどのように複数GPUを利用刷るかがわからない。そこで、より細かいAPIページを参照する必要がある。 具体的には |
等と設定することで、複数gpuを学習に利用できる。ただし、実際にこのオプションを設定して実行すると distribution_strageryが'off'ではだめだよ、というエラーになる。では distribution_strategyをどうすればよいのかが、実は述べられていない。結果としては、github上のソースコードから、サンプルとして、num_gpusを1以上に設定しているサンプルファイルでは、 distribution_strategyに 'mirrored'を設定しているものがあり、これに倣って 'mirrored' にしたら学習が進んだ。まとめると、 | 等と設定することで、複数gpuを学習に利用できる。ただし、実際にこのオプションを設定して実行すると distribution_strageryが'off'ではだめだよ、というエラーになる。では distribution_strategyをどうすればよいのかが、実は述べられていない。結果としては、github上のソースコードから、サンプルとして、num_gpusを1以上に設定しているサンプルファイルでは、 distribution_strategyに 'mirrored'を設定しているものがあり、これに倣って 'mirrored' にしたら学習が進んだ。まとめると、 |
* num_gpus:4, | * num_gpus:4, |
* distribution_strategy:'mirrored' | * distribution_strategy='mirrored' |
でOK. | でOK.例えばこんな感じ |
| |
| <code> |
| hparams = object_detector.HParams( |
| export_dir='exported_model', |
| epochs=120, |
| num_gpus=4, |
| distribution_strategy='mirrored' |
| ) |
| </code> |
====== 実行 ====== | ====== 実行 ====== |
うまくいくとモデルが完成するので,出来上がったモデルを試すページは以下 | うまくいくとモデルが完成するので,出来上がったモデルを試すページは以下 |