Jestem właśnie po procesie integracji modeli Tensorflowa do istniejącej aplikacji C++. Połączenie TensorFlow i C++ to moim zdaniem porażka.
Przede wszystkim, TensorFlow nie dostarcza paczek debianowych. zatem trzeba go sobie zbudować samemu.
Po drugie TF nie wspiera CMake'a - budowanie bibliotek wymaga jakiegoś beznadziejnego tool'a Bazel. Owszem istnieją jakieś niezależne projekty portujące TensorFlow do Cmake'a, ale miały pewne ograniczenia, które powodowały, że nie mogłem ich użyć.
Po trzecie wersja Bazela zależy od wersji TensorFlowa, którą chcemy budować. A ta z kolei zależy od wersji CUDA (oczywiście jeśli budujemy z CUDA, co w profesjonalnych projektach zazwyczaj ma miejsce).
Po czwarte, Tensorflow nie potrafi użyć istniejących zależności w projekcie, tylko dociąga własne. W efekcie, mam teraz w projekcie 2 wersje różne wersje Eigena. Dobrze, że to tylko biblioteka nagłówkowa, bo jakby się to miało linkować, to byłby niezły syf.
Po piąte, zarządzanie zawartością biblioteki to żart. Bazel generuje po kokardę rzeczy, które mają się znaleźć w bibliotece, a jestem przekonany że są niepotrzebne. Do tego trzeba dorzucić jakieś katalogi bezpośrednio z repo.
Jeśli miałbym coś komuś polecać, to trenować modele w jakichś narzędziach pytonowych, a potem skorzystać z gotowego serwera inferencyjnego, np. Nvidia Triton.