私はtensorflow 1.2.0でこのチュートリアルで、次のマルチGPUの訓練システムを作成しました: https://github.com/tensorflow/tensorflow/blob/r0.10/tensorflow/models/image/cifar10/cifar10_multi_gpu_train.pytensorflowマルチGPUトレーニング
マルチGPUのバージョンを作成する前に、私はシングルGPU上で64のバッチサイズに合うことができました。上記のチュートリアルに続いて複数のGPUバージョンのコードを作成した場合、データの並列化によってより多くのバッチに対応できると思いました。私は64のバッチサイズでそれぞれ4つのGPUSを使用することを望んでいたが、私はメモリの問題を直面している。私は64とのみ4 GPUのバッチサイズを使用した場合のいずれかのケースのためのより多くのGPUを使用した上で32のバッチサイズを使用しているとき、私は次のエラーを取得するデータ並列化のための2のGPUを使用することができる午前:
tensorflow.python.framework.errors_impl.InternalError: Dst tensor is not initialized.
グーグルでは、GPUのメモリが不足しているときにこのエラーが発生することがわかりました。なぜこれが起こっているのか分かりません。私は自分のマシンにそれぞれ12ギガのメモリを搭載した8つのnvidia titanカードを持っています。なぜ私は64のバッチサイズを1つのGPUに収めることができるのか理解していないので、2つ以上のGPUSに同じバッチサイズの64を収めることができません。なぜメモリが飽和しているのですか?使用されているGPUSの数が増えると増加するオーバーヘッドはありますか?
の前に定義することができます。私はあなたがvariable_scopeでname_scopeを置き換えなければならないと言っていない限り、範囲を見落としていませんか? –