Uso un hack / soluzione alternativa per evitare di dover costruire da solo l'intera libreria TF (che consente di risparmiare tempo (è impostato in 3 minuti), spazio su disco, installazione di dipendenze di sviluppo e dimensioni del file binario risultante). È ufficialmente non supportato, ma funziona bene se vuoi semplicemente saltare rapidamente dentro.
Installare TF attraverso pip ( pip install tensorflowo pip install tensorflow-gpu). Quindi trova la sua libreria _pywrap_tensorflow.so(TF 0. * - 1.0) o _pywrap_tensorflow_internal.so(TF 1.1+). Nel mio caso (Ubuntu) si trova in /usr/local/lib/python2.7/dist-packages/tensorflow/python/_pywrap_tensorflow.so. Quindi crea un link simbolico a questa libreria chiamato lib_pywrap_tensorflow.soda qualche parte dove lo trova il tuo sistema di compilazione (ad es /usr/lib/local.). Il prefisso libè importante! Puoi anche dargli un altro lib*.sonome: se lo chiami libtensorflow.so, potresti ottenere una migliore compatibilità con altri programmi scritti per funzionare con TF.
Quindi crea un progetto C ++ come sei abituato (CMake, Make, Bazel, qualunque cosa ti piaccia).
E poi sei pronto a collegarti a questa libreria per avere TF disponibile per i tuoi progetti (e devi anche collegarti a python2.7librerie)! In CMake, ad esempio, basta aggiungere target_link_libraries(target _pywrap_tensorflow python2.7).
I file di intestazione C ++ si trovano attorno a questa libreria, ad esempio in /usr/local/lib/python2.7/dist-packages/tensorflow/include/ .
Ancora una volta: in questo modo non è ufficialmente supportato e si possono riscontrare vari problemi. La libreria sembra essere staticamente collegata ad esempio a protobuf, quindi è possibile che si verifichino problemi di link-time o run-time dispari. Ma sono in grado di caricare un grafico memorizzato, ripristinare i pesi ed eseguire l'inferenza, che è IMO la funzionalità più desiderata in C ++.