私はTensorFlowを使用して、変数を宣言する場所を手動で制御できることを知っています(GPUのニューラルネットワークの半分、他のGPUの残りの部分など)。TensorFlowの自動デバイス配置はマルチGPUケースを処理しますか?
それは我々が手動で複数のGPU に変数を置くことができることを確認しているにもかかわらず、彼らは、そのような自動変数配置を使用して、これらの複数のGPUに自動的を置くことができますか? TensorFlowのドキュメントでは、自動デバイス配置がマルチGPUのケースを処理するかどうかを明示的には言及していないようです。
たとえば、では、TensorFlowバックエンドを使用してKerasモデルを構築するとします。モデルが大きすぎるためにモデルが最初のGPUのすべてに収まらない場合、TensorFlowは自動的に2番目のGPU(およびより多くのGPU)を使用してニューラルネットワークの変数を宣言しますか?
ありがとうございました。
いいえ、TensorFlowはgpuでできることすべてを実行しようとします:もし存在すれば0 –
ありがとう。あなたはその質問に答えることができ、私はそれを最良の答えとして受け入れます。私はあなたが念頭に置いている例を持っているならば、 "整数値の演算を除いて"についてもっと詳しく知りたいと思う。 –
私はまた、複数のGPUを使用した場合の潜在的なパフォーマンスの欠点を知ることに興味があります。このようなニューラルネットワークの分割のためにパフォーマンスが大幅に低下することを期待する必要がありますか?私には、フォワードパスの途中で1テンソルの出力を転送し、CNNの場合はトレーニング中の後方パスでこれをやり直す必要があるので、わからないと思った。 –