Hướng dẫn MNIST For ML Beginners
cho tôi lỗi khi chạy print(sess.run(accuracy, feed_dict={x: mnist.test.images, y_: mnist.test.labels}))
. Mọi thứ khác chạy tốt.TensorFlow: Dst tensor không được khởi tạo
Lỗi và dấu vết:
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"]()]]
tôi chỉ chuyển sang một phiên bản mới hơn của CUDA, vì vậy có lẽ đây có cái gì để làm với điều đó? Có vẻ như lỗi này là về việc sao chép một tensor vào GPU.
Stack: EC2 máy g2.8xlarge, Ubuntu 14.04
UPDATE:
print(sess.run(accuracy, feed_dict={x: batch_xs, y_: batch_ys}))
chạy tốt. Điều này dẫn tôi đến nghi ngờ rằng vấn đề là tôi đang cố gắng chuyển một tensor lớn đến GPU và nó không thể lấy nó. Nhỏ tensors như một minibatch làm việc tốt.
UPDATE 2:
tôi đã tìm ra một cách chính xác lớn như thế nào tensors phải để gây ra vấn đề này:
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]}))
Tôi cũng gặp vấn đề tương tự, mặc dù có mô hình khác. Tuy nhiên, nó chỉ xảy ra khi tôi cố gắng chọn gpus bản thân mình bằng cách sử dụng td.device(). Bạn đang sử dụng nhiều GPU? – Cesar