2015-11-16 33 views
5

Tôi đang cố gắng tìm hiểu các nội bộ của TensorFlow bằng cách đẩy mã python của mô hình CIFAR-10 đào tạo vào mã C++ lõi của nó. Sử dụng Eclipse + PyDev để từng bước gỡ lỗi mã python hoạt động tốt, nhưng tôi không thể tìm thấy cách bước vào mã C++ của lõi TensorFlow. Tôi đã thử sử dụng CDT Eclipse để xây dựng mã C++ trong một dự án riêng biệt và đính kèm trình gỡ rối vào quá trình python chạy cifar10_train.py như được mô tả here, nhưng các biểu tượng không bao giờ được nạp và (rõ ràng) các điểm ngắt được hoãn lại không bao giờ bị trúng.TensorFlow lõi gỡ lỗi; thiếu các ký hiệu gỡ lỗi

Bối cảnh và thiết lập:

Tôi đang chạy trên Ubuntu 14.04 LTS, cài đặt mã TensorFlow từ các nguồn như mô tả here và dự án CDT tôi sử dụng một Makefile chứa

bazel build -c dbg //tensorflow/cc:tutorials_example_trainer.

+2

Bạn có thể cần phải xây dựng lại TensorFlow từ nguồn bằng cách sử dụng "--compilation_mode dbg" để bao gồm các ký hiệu –

+0

Nếu tôi hiểu hướng dẫn sử dụng của bazel chính xác, đề xuất của bạn tương đương với cờ "-c dbg" tôi đã sử dụng. .. – user5568317

+0

có, tương đương. Hm ... Tôi tự hỏi nếu vấn đề là tất cả các ký hiệu TensorFlow C không có trong nhị phân "python", mà thay vào đó là các tệp .so được nạp động và được sử dụng thông qua SWIG. Đây là một liên kết tôi thấy rằng có vẻ hơi liên quan - http://library.tebyan.net/en/Viewer/Text/164572/330 –

Trả lời

5

TensorFlow tải thư viện có tên _pywrap_tensorflow.so bao gồm API C của nó (như được định nghĩa trong tensorflow/tensorflow/core/client/tensor_c_api.cc).

Trong trường hợp của tôi thư viện nạp trong thời gian chạy được đặt tại
~/tensorflow/local/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so
nhưng thư viện đã được xây dựng từ mã nguồn địa phương được đặt tại ~/.cache/bazel/_bazel_<username>/dbb3c677efbf9967e464a5c6a1e69337/tensorflow/bazel-out/local_linux-dbg/bin/tensorflow/python/_pywrap_tensorflow.so.

Sao chép thư viện được xây dựng cục bộ qua thư viện đã tải và đính kèm vào quy trình python như được xác định trong câu hỏi đã giải quyết được sự cố.

+0

Điều tra tốt! –