2016-12-09 41 views
9

Tôi quan tâm đến việc kết hợp TensorFlow vào một ứng dụng máy chủ C++ được xây dựng trong Visual Studio trên Windows 10 và tôi cần phải biết nếu có thể. Google gần đây đã công bố hỗ trợ Windows cho TensorFlow: https://developers.googleblog.com/2016/11/tensorflow-0-12-adds-support-for-windows.html nhưng từ những gì tôi có thể nói đây chỉ là cài đặt pip cho gói Python thường được sử dụng hơn và sử dụng API C++, bạn cần xây dựng repo từ nguồn: How to build and use Google TensorFlow C++ api I đã cố gắng tự mình xây dựng dự án bằng cách sử dụng bazel, nhưng đã gặp sự cố khi cố định cấu hình bản dựng.Có thể sử dụng API TensorFlow C++ trên Windows không?

Có cách nào để lấy TensorFlow C++ để làm việc trong Windows nguyên bản (không sử dụng Docker hoặc hệ thống con Windows 10 Linux mới, như tôi đã thấy những bài đăng khác)?

Cảm ơn,

Ian

Trả lời

8

Nó chắc chắn là thể sử dụng C++ API TensorFlow của trên Windows, nhưng nó không phải là hiện rất dễ dàng . Ngay bây giờ, cách dễ nhất để xây dựng dựa trên API C++ trên Windows sẽ là xây dựng với CMake và điều chỉnh CMake rules for the tf_tutorials_example_trainer project (xem mã nguồn here). Xây dựng với CMake sẽ cung cấp cho bạn một dự án Visual Studio, trong đó bạn có thể triển khai chương trình C++ TensorFlow của bạn.

Lưu ý rằng các dự án tf_tutorials_example_trainer xây dựng một ứng dụng Console tĩnh liên kết tất cả các thời gian chạy TensorFlow vào chương trình của bạn. Hiện tại chúng tôi chưa viết các quy tắc cần thiết để tạo ra một DLL TensorFlow có thể tái sử dụng, mặc dù điều này có thể thực hiện được: ví dụ, phần mở rộng Python là một DLL bao gồm thời gian chạy, nhưng không xuất các ký hiệu cần thiết để sử dụng C hoặc C++ của TensorFlow API trực tiếp.

+0

Đối với những người như tôi chưa từng sử dụng CMake trước đây, bạn sử dụng nó như thế nào để xây dựng 'tf_tutorials_example_trainer'? – HelloGoodbye

+1

Sau khi làm theo [hướng dẫn để chạy 'cmake'] (https://github.com/tensorflow/tensorflow/blob/395cfc42ee3c5842f5383f4049674c012998b133/tensorflow/contrib/cmake/README.md) và tạo một tập hợp các tệp dự án Visual C++, bạn sẽ có thể chạy 'MSBuild/p: Configuration = Release tf_tutorials_example_trainer.vcxproj' trong thư mục build (hoặc tải' tf_tutorials_example_trainer.vcxproj' vào Visual Studio và xây dựng nó từ đó). – mrry

+0

Cảm ơn. Tôi đang cố gắng làm theo hướng dẫn, nhưng tôi đang gặp phải [một số vấn đề] (http://stackoverflow.com/questions/43940883/errors-when-building-tensorflow-with-cmake-on-windows-10). – HelloGoodbye

5

Có hướng dẫn chi tiết bằng cách Joe Antognini và tương tự TensorFlow ReadMe at GitHub giải thích việc xây dựng nguồn TensorFlow thông qua CMake. Bạn cũng cần cài đặt SWIG trên máy của mình, cho phép kết nối nguồn C/C++ với ngôn ngữ kịch bản Python. Tôi đã sử dụng Visual CMAKE (cmake-gui) với ảnh chụp màn hình hiển thị bên dưới.

cmake-gui setup (with SWIG) for building TensorFlow C++ source with Visual Studio

Trong cấu hình CMake, tôi sử dụng Visual Studio 15 2017 trình biên dịch. Khi giai đoạn này hoàn tất thành công, bạn có thể nhấp vào nút Tạo để tiếp tục với quá trình xây dựng thực tế.

Tuy nhiên, trên Visual Studio 2015, khi tôi cố xây dựng qua dự án "ALL_BUILD", thiết lập đã cho tôi lỗi "công cụ xây dựng cho v141 không thể tìm thấy". Điều này đã không biến mất ngay cả khi tôi cố gắng nhắm mục tiêu lại giải pháp của mình. Cuối cùng, giải pháp đã được xây dựng thành công với Visual Studio 2017. Bạn cũng cần phải tự đặt đường dẫn SWIG_EXECUTABLE trong CMake trước khi cấu hình thành công.

Như được nêu trong liên kết Antognini, đối với tôi bản dựng mất khoảng nửa giờ trên RAM 16 GB, máy Core i7. Sau khi hoàn tất, bạn có thể muốn xác thực bản dựng của mình bằng cách cố gắng chạy tệp tf_tutorials_example_trainer.exe.

Hy vọng điều này sẽ hữu ích!

+1

Bài đăng của Joe Antognini dường như là một hướng dẫn hữu ích, nhưng cuối cùng lại lãng phí thời gian tôi trải qua nhiều ngày vì rất dễ để không nhận ra bạn đang sử dụng trình biên dịch MSVC 64 bit, và rất khó để làm điều đó từ bên trong Visual Studio. Bằng cách so sánh, khi tôi bỏ qua Visual Studio và sử dụng MSBuild theo hướng dẫn xây dựng "chính thức" của CMake, nó đã hoạt động ngay lập tức. – omatai

Các vấn đề liên quan