Tôi sử dụng hack / cách khắc phục để tránh phải tự xây dựng toàn bộ thư viện TF (giúp tiết kiệm cả thời gian (được thiết lập trong 3 phút), dung lượng đĩa, cài đặt phụ thuộc dev và kích thước của tệp nhị phân kết quả). Nó chính thức không được hỗ trợ, nhưng hoạt động tốt nếu bạn chỉ muốn nhanh chóng nhảy vào.
Cài đặt TF thông qua pip ( pip install tensorflow
hoặc pip install tensorflow-gpu
). Sau đó tìm thư viện của nó _pywrap_tensorflow.so
(TF 0. * - 1.0) hoặc _pywrap_tensorflow_internal.so
(TF 1.1+). Trong trường hợp của tôi (Ubuntu), nó nằm ở /usr/local/lib/python2.7/dist-packages/tensorflow/python/_pywrap_tensorflow.so
. Sau đó, tạo một liên kết tượng trưng đến thư viện này được gọi lib_pywrap_tensorflow.so
ở đâu đó nơi hệ thống xây dựng của bạn tìm thấy nó (ví dụ /usr/lib/local
). Tiền tố lib
là quan trọng! Bạn cũng có thể đặt cho nó một lib*.so
tên khác - nếu bạn gọi nó libtensorflow.so
, bạn có thể có khả năng tương thích tốt hơn với các chương trình khác được viết để làm việc với TF.
Sau đó, tạo một dự án C ++ như bạn đã quen (CMake, Make, Bazel, bất cứ điều gì bạn thích).
Và sau đó, bạn đã sẵn sàng chỉ liên kết với thư viện này để có sẵn TF cho các dự án của bạn (và bạn cũng phải liên kết với python2.7
các thư viện)! Trong CMake, bạn ví dụ chỉ cần thêm target_link_libraries(target _pywrap_tensorflow python2.7)
.
Các tệp tiêu đề C ++ được đặt xung quanh thư viện này, ví dụ như trong /usr/local/lib/python2.7/dist-packages/tensorflow/include/
.
Một lần nữa: cách này chính thức không được hỗ trợ và bạn có thể chạy trong nhiều vấn đề khác nhau. Thư viện dường như được liên kết tĩnh với ví dụ như protobuf, vì vậy bạn có thể chạy trong các vấn đề thời gian liên kết hoặc thời gian chạy lẻ. Nhưng tôi có thể tải một biểu đồ được lưu trữ, khôi phục các trọng số và chạy suy luận, đó là IMO chức năng mong muốn nhất trong C ++.