На данный момент для TF 2.5LTS нужен базель 2.3.2. Пожалуйста, проверьте внутри tensorflow/.bazelversion.
Установите bazel-‹версия›-installer-linux-x86_64.sh отсюда: https://github.com/bazelbuild/bazel/releases
>> chmod +x bazel-<version>-installer-linux-x86_64.sh
>> ./bazel-<version>-installer-linux-x86_64.sh --user
>> export PATH="$PATH:$HOME/bin"
>> sources ~/.bashrc # sources ~/.zshrc
Затем клонируйте репозиторий github Tensorflow,
>> git clone https://github.com/tensorflow/tensorflow.git >> cd tensorflow >> .configure You have bazel 3.7.2 installed. Please specify the location of python. [Default is /home/saurav/anaconda3/bin/python3]: Found possible Python library paths: /home/saurav/anaconda3/lib/python3.7/site-packages /opt/intel/openvino_2020.3.194/data_processing/dl_streamer/python /opt/intel/openvino_2020.3.194/data_processing/gstreamer/lib/python3.6/site-packages /opt/intel/openvino_2020.3.194/deployment_tools/model_optimizer /opt/intel/openvino_2020.3.194/deployment_tools/open_model_zoo/tools/accuracy_checker /opt/intel/openvino_2020.3.194/python/python3 /opt/intel/openvino_2020.3.194/python/python3.7 Please input the desired Python library path to use. Default is [/home/saurav/anaconda3/lib/python3.7/site-packages] Do you wish to build TensorFlow with ROCm support? [y/N]: N No ROCm support will be enabled for TensorFlow. Do you wish to build TensorFlow with CUDA support? [y/N]: N No CUDA support will be enabled for TensorFlow. Do you wish to download a fresh release of clang? (Experimental) [y/N]: N Clang will not be downloaded. Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -Wno-sign-compare]: Would you like to interactively configure ./WORKSPACE for Android builds? [y/N]: n Not configuring the WORKSPACE for Android builds. Preconfigured Bazel build configs. You can use any of the below by adding "--config=<>" to your build command. See .bazelrc for more details. --config=mkl # Build with MKL support. --config=mkl_aarch64 # Build with oneDNN and Compute Library for the Arm Architecture (ACL). --config=monolithic # Config for mostly static monolithic build. --config=numa # Build with NUMA support. --config=dynamic_kernels # (Experimental) Build kernels into separate shared objects. --config=v1 # Build with TensorFlow 1 API instead of TF 2 API. Preconfigured Bazel build configs to DISABLE default on features: --config=nogcp # Disable GCP support. --config=nonccl # Disable NVIDIA NCCL support. Configuration finished
Теперь постройте с bazel,
>> bazel test --config opt \ //tensorflow/tools/lib_package:libtensorflow_test >> bazel build --config opt //tensorflow/tools/lib_package:libtensorflow
Поскольку bazel потребляет много памяти, мы можем указать использовать часть в случае ограничения ресурсов.
— local_ram_resources: объем оперативной памяти
— local_cpu_resources: количество процессоров в int
>> bazel test --config opt \ --jobs 1 \ --local_ram_resources 2048 --local_cpu_resources 10 \ --verbose_failures //tensorflow/tools/lib_package:libtensorflow_test >> bazel build --config opt \ --jobs 1 \ --local_ram_resources 2048 --local_cpu_resources 10 \ //tensorflow/tools/lib_package:libtensorflow
Если вас интересует только TF C, вы можете ввести эту команду, она сгенерирует файлы include и lib, требуемые API TF C. Примечание: вы можете изменить
>> sudo tar -C /usr/local -xzf libtensorflow.tar.gz >> sudo ldconfig
Структура папки:
Пример:
- Откройте терминал и введите следующее
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
вы можете добавить его в ~/.bashrc или ~/.zshrc.
2. создайте main.cpp и сохраните его.
#include <stdio.h>
#include <tensorflow/c/c_api.h>
int main() {
printf("Hello from TensorFlow C library version %s\n", TF_Version());
return 0;
}
Скомпилируйте код
>> gcc hello_tf.c -ltensorflow -o hello_tf
>> ./hello_tf
Hello from TensorFlow C library version 2.5.0-dev20210512
если вы хотите скомпилировать и запустить команду в одну строку.
>> gcc -I/usr/local/include -L/usr/local/lib hello_tf.c -ltensorflow -o hello_tf
>> ./hello_tf
Hello from TensorFlow C library version 2.5.0-dev20210512
Интеграция Tensorflow C Lib с cmake:
# CMakeLists.txt cmake_minimum_required(VERSION 3.10) project(example) find_library(TENSORFLOW_LIB tensorflow HINT $ENV{HOME}/libtensorflow2/lib) set(CMAKE_CXX_STANDARD 17) add_executable(example main.cpp) target_include_directories(example PRIVATE ../../include $ENV{HOME}/libtensorflow2/include) target_link_libraries (example "${TENSORFLOW_LIB} -ltensorflow")
Скомпилируйте и запустите код.
>> cmake . >> make >> ./example Hello from TensorFlow C library version 2.5.0-dev20210512
Сделанный!
Пожалуйста, похлопайте, если вам это нравится.
Я отправлю код с большим количеством примеров.
Использованная литература: