9

1 つの gpu でトレーニング コードを使用し、もう 1 つの gpu で評価コードを使用して、CIFAR10 チュートリアルを実行しようとしています。コンピューターに 2 つの gpu があることは確かです。ここで簡単な例を実行してこれをテストできます: https://www.tensorflow.org/how_tos/using_gpu/index.html

ただし、with device('/gpu:0')CIFAR の例では、ほとんどの変数に対して a を使用しても機能しません。gpu と cpu のさまざまな変数の組み合わせ、またはいずれかのすべての変数の組み合わせをたくさん試しました。次のような変数に対して常に同じエラーが発生します。

Cannot assign a device to node 'shuffle_batch/random_shuffle_queue': Could not satisfy explicit device specification '/gpu:0'

これはおそらく Tensor Flow のバグですか、それとも何か不足していますか?

4

1 に答える 1

9

Could not satisfy explicit device specification対応するデバイスがないことを意味します。実際にマシンに CUDA 対応の GPU を搭載していますか?

更新:以下の説明で判明したように、特定の操作 (この場合はRandomShuffleQueue) が GPU で実行できない場合にも、このエラーが発生します。これは、CPU 実装しかないためです。

TensorFlow がデバイスを選択しても問題ない場合 (特に、GPU 実装が利用できない場合に CPU にフォールバックする場合)、この記事allow_soft_placementに従って、構成で設定することを検討してください。

sess = tf.Session(config=tf.ConfigProto(
    allow_soft_placement=True, log_device_placement=True))
于 2015-12-03T20:52:53.080 に答える