Googleのクラウドml-engineで非常に大きなTensorflowモデルを実行しています。 (batch_size=1
付き)規模階層basic_gpu
を使用している場合、私のようなエラーが出る:モデルが収まるように大きすぎるため形状[1,155,240,240,16]Tensorflow。 GPU間でopsを配布する方法
とテンソルを割り当てるときOOM:
排出リソースを1つのGPUで
4つのGPUを提供する階層
comple_model_m_gpu
を使用して、4つのGPU間で操作を分散できます。しかし、私はGPU間の通信が遅いことを覚えており、トレーニングでボトルネックが発生する可能性があります。これは本当ですか?
もしそうなら、この問題を防ぐGPU間で操作を広げることをお勧めしますか?ガイドから
:
ガイドで使用されている手法は、GPU間でモデルのコピーを作成し、それぞれ異なるデータを処理します。私のモデルは1つのGPUに収まらないので、1つのバッチを処理するために複数のGPUを使用する必要があります。私はK80を使用しています。モデルは[VNet](https://arxiv.org/abs/1606.04797)と呼ばれています – Miguel
いくつかの具体的な提案で答えを更新 – rhaertel80
ありがとう、私はすでにPSとCPUに変数を配置しています、私はより強力なGPU。私は最終的な解決策は入力をより小さなテンソルに分割しなければならないと思う。 – Miguel