2016-05-19 55 views
13

を実行すると、MNIST For ML Beginnersチュートリアルでエラーが発生します。他のすべては正常に動作します。TensorFlow:Dstテンソルが初期化されていません

エラーおよびトレース:

InternalErrorTraceback (most recent call last) 
<ipython-input-16-219711f7d235> in <module>() 
----> 1 print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels})) 

/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc in run(self, fetches, feed_dict, options, run_metadata) 
    338  try: 
    339  result = self._run(None, fetches, feed_dict, options_ptr, 
--> 340       run_metadata_ptr) 
    341  if run_metadata: 
    342   proto_data = tf_session.TF_GetBuffer(run_metadata_ptr) 

/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc in _run(self, handle, fetches, feed_dict, options, run_metadata) 
    562  try: 
    563  results = self._do_run(handle, target_list, unique_fetches, 
--> 564        feed_dict_string, options, run_metadata) 
    565  finally: 
    566  # The movers are no longer used. Delete them. 

/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc in _do_run(self, handle, target_list, fetch_list, feed_dict, options, run_metadata) 
    635  if handle is None: 
    636  return self._do_call(_run_fn, self._session, feed_dict, fetch_list, 
--> 637       target_list, options, run_metadata) 
    638  else: 
    639  return self._do_call(_prun_fn, self._session, handle, feed_dict, 

/usr/local/lib/python2.7/dist-packages/tensorflow/python/client/session.pyc in _do_call(self, fn, *args) 
    657  # pylint: disable=protected-access 
    658  raise errors._make_specific_exception(node_def, op, error_message, 
--> 659            e.code) 
    660  # pylint: enable=protected-access 
    661 

InternalError: Dst tensor is not initialized. 
    [[Node: _recv_Placeholder_3_0/_1007 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/gpu:0", send_device="/job:localhost/replica:0/task:0/cpu:0", send_device_incarnation=1, tensor_name="edge_312__recv_Placeholder_3_0", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/gpu:0"]()]] 
    [[Node: Mean_1/_1011 = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/cpu:0", send_device="/job:localhost/replica:0/task:0/gpu:0", send_device_incarnation=1, tensor_name="edge_319_Mean_1", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/cpu:0"]()]] 

を私はCUDAのより新しいバージョンに切り替えたので、多分これはそれとは何かを持っていますか?このエラーのようなのは、テンソルをGPUにコピーすることです。

スタック:EC2のg2.8xlarge機、Ubuntuの14.04

UPDATE:

print(sess.run(accuracy, feed_dict={x: batch_xs, y_: batch_ys}))実行罰金。これは、私が巨大テンソルをGPUに転送しようとしており、それを取ることができないという問題であると考えています。 minibatchのような小さなテンソルはうまく動作します。

UPDATE 2:

batch_size = 7509 #Works. 
print(sess.run(accuracy, feed_dict={x: mnist.test.images[0:batch_size], y_: mnist.test.labels[0:batch_size]})) 

batch_size = 7510 #Doesn't work. Gets the Dst error. 
print(sess.run(accuracy, feed_dict={x: mnist.test.images[0:batch_size], y_: mnist.test.labels[0:batch_size]})) 
+0

別のモデルでも同じ問題が発生しています。しかし、td.device()を使用してgpusを自分で選択しようとすると発生します。複数のGPUを使用していますか? – Cesar

答えて

2

はEC2のg2.8xlargeは、GPUの4ギガバイトを持っている点に注意してください:私はテンソルは、この問題を引き起こすためにする必要が正確にどのように大きな考え出した

メモリ。
https://aws.amazon.com/ec2/instance-types/

私は、モデルは、あなたが一つの画像が占めるどのくらいのスペースアウト引くことができます1のバッチサイズでそれを実行している以外を占めてどのくらいのスペースを見つけるための良い方法はありません。

そこから、最大バッチサイズを決定できます。これはうまくいくはずですが、私はtensorflowがgpuメモリを動的にトーチに似ていると思っていますし、caffeとは異なり、get gpuから必要な最大のgpuスペースをブロックします。したがって、おそらく最大バッチサイズで控えめになりたいと思うでしょう。

5

バッチサイズを処理するのに十分なメモリがない場合、このエラーメッセージは簡潔に表示されます。実行メタデータをログに記録を検討し、実行時のメモリ使用量を監視するには

  • Stevenさんにここにリンクを(私はまだコメントを投稿することができない)、拡大

    はTensorflow中/制御メモリの使用状況を監視するためのいくつかのトリックです。 Tensorboardでグラフ内のノードごとのメモリ使用量を確認できます。詳細とその例については、Tensorboard information pageを参照してください。

  • デフォルトでは、Tensorflowはできるだけ多くのGPUメモリを割り当てようとします。これをGPUConfigオプションを使用して変更することができます。そのため、Tensorflowは必要なだけ多くのメモリを割り当てます。これについては、documentationを参照してください。そこには、GPUメモリの特定の部分だけを割り当てることができるオプションもあります(私はこれが時々壊れていることがわかりました)。
+0

['thanks'](https://meta.stackoverflow.com/questions/288160/no-thanks-damn-it)と['greetings'](https://meta.stackexchange.com/questions)にご注意ください。/2950/should-hi-thanks-taglines-and-post-from-from-post-from-posts)は、このタイプのFAQサイトのための悪いスタイルとみなされます。私は最近それを学んだので、情報に沿って渡したい! – Zroach

関連する問題