2016-03-21 13 views
3

私は埋め込みレイヤーを持つモデルを作成しました.LSTMはgpu:0に、softmaxレイヤーはgpu:1に作成しました。TensorFlowのグラジエントを特定のGPUに固定するにはどうすればよいですか?

そうように私は、トレーニングOPを作成:

optim = tf.train.GradientDescentOptimizer(LEARNING_RATE) 
train_op = optim.minimize(final_loss) 

トレーニングはメモリ不足エラーで失敗します。デバイスの配置ロギングを有効にすると、softmaxの勾配がgpu:1ではなくgpu:0に設定されていることがわかります。 TensorFlowを正しく配置するにはどうすればいいですか?

答えて

3

元の(順方向パス)演算子と同じデバイスにグラデーションを配置するには、オプション引数colocate_gradients_with_ops=Trueoptim.minimize()に渡す必要があります。あなたのコードは次のようになります:

optim = tf.train.GradientDescentOptimizer(LEARNING_RATE) 
train_op = optim.minimize(final_loss, colocate_gradients_with_ops=True) 
+0

ありがとう、私はドキュメントのそのオプションを見落としました。 – Maarten

関連する問題