Saya menggunakan hack / solusi untuk menghindari harus membangun seluruh perpustakaan TF sendiri (yang menghemat waktu (itu diatur dalam 3 menit), ruang disk, menginstal dependensi dev, dan ukuran biner yang dihasilkan). Secara resmi tidak didukung, tetapi berfungsi dengan baik jika Anda hanya ingin melompat dengan cepat.
Instal TF melalui pip ( pip install tensorflow
atau pip install tensorflow-gpu
). Kemudian temukan perpustakaannya _pywrap_tensorflow.so
(TF 0. * - 1.0) atau _pywrap_tensorflow_internal.so
(TF 1.1+). Dalam kasus saya (Ubuntu) itu terletak di /usr/local/lib/python2.7/dist-packages/tensorflow/python/_pywrap_tensorflow.so
. Kemudian buat symlink ke pustaka ini yang disebut di lib_pywrap_tensorflow.so
suatu tempat di mana sistem build Anda menemukannya (mis /usr/lib/local
.). Awalan lib
itu penting! Anda juga dapat memberikannya lib*.so
nama lain - jika Anda menyebutnyalibtensorflow.so
, Anda mungkin mendapatkan kompatibilitas yang lebih baik dengan program lain yang ditulis untuk bekerja dengan TF.
Kemudian buat proyek C ++ seperti yang biasa Anda lakukan (CMake, Make, Bazel, apa pun yang Anda suka).
Dan kemudian Anda siap untuk hanya menautkan ke perpustakaan ini agar TF tersedia untuk proyek Anda (dan Anda juga harus menautkan ke python2.7
perpustakaan)! Di CMake, misalnya Anda hanya menambahkan target_link_libraries(target _pywrap_tensorflow python2.7)
.
File header C ++ terletak di sekitar perpustakaan ini, misalnya di /usr/local/lib/python2.7/dist-packages/tensorflow/include/
.
Sekali lagi: cara ini secara resmi tidak didukung dan Anda dapat menjalankan berbagai masalah. Pustaka tampaknya terhubung secara statis dengan mis. Protobuf, sehingga Anda dapat berjalan dalam masalah waktu-tautan atau waktu-berjalan yang aneh. Tetapi saya dapat memuat grafik yang disimpan, mengembalikan bobot dan menjalankan inferensi, yang merupakan IMO fungsi yang paling dicari di C ++.