이 저장소는 Tensorflow 소스 코드 폴더 외부에서 Bazel 빌드 시스템을 사용하지 않고 텐서 플로우 C ++ API의 사용을 가능하게합니다.
이 저장소에는 두 개의 CMAKE 프로젝트가 포함되어 있습니다. Tensorflow_CC 프로젝트는 TensorFlow C ++ API를 운영 체제에 다운로드, 빌드 및 설치하며 예제 프로젝트는 간단한 사용을 보여줍니다.
이 프로젝트 사용을 즉시 시작하려면 Docker Hub에서 미리 빌드 이미지를 가져 오십시오!
CPU에서 이미지 실행 :
docker run -it floopcz/tensorflow_cc:ubuntu /bin/bashNVIDIA GPU를 활용하려면 NVIDIA DOCKER를 설치하고 실행하십시오.
docker run --gpus all -it floopcz/tensorflow_cc:ubuntu-cuda /bin/bash사용 가능한 이미지 목록 :
| 이미지 이름 | 설명 |
|---|---|
floopcz/tensorflow_cc:ubuntu | tensorflow_cc 의 Ubuntu 빌드 |
floopcz/tensorflow_cc:ubuntu-cuda | tensorflow_cc + nvidia cuda의 Ubuntu 빌드 |
floopcz/tensorflow_cc:archlinux | tensorflow_cc 의 아치 Linux 빌드 |
floopcz/tensorflow_cc:archlinux-cuda | tensorflow_cc + NVIDIA CUDA의 아치 Linux 빌드 |
이미지 중 하나를 직접 만들려면 ubuntu , Run :
docker build -t floopcz/tensorflow_cc:ubuntu -f Dockerfiles/ubuntu . 저장소 요구 사항 설치 :
sudo apt-get install cmake curl g++-7 git python3-dev python3-numpy sudo wget
기본 파이썬으로 Python 3을 설정하십시오.
update-alternatives --install /usr/bin/python python /usr/bin/python3 1
텐서 플로 자체를 구축하려면 빌드 절차에도 바젤이 필요합니다.
curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpg
sudo mv bazel.gpg /etc/apt/trusted.gpg.d/
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
sudo apt-get update && sudo apt-get install bazel
Ubuntu에서 GPU 지원이 필요한 경우 NVIDIA CUDA TOOLKIT (> = 11.1), NVIDIA 드라이버, CUDNN 및 cuda-command-line-tools 패키지를 설치하십시오. 빌드 절차는 /opt/cuda 또는 /usr/local/cuda 디렉토리에 설치된 경우 CUDA를 자동으로 감지합니다.
sudo pacman -S base-devel bazel cmake git python python-numpy wget
Arch에서 GPU 지원을 위해 다음을 설치하십시오.
sudo pacman -S cuda cudnn nvidia
경고 : 최신 버전의 Tensorflow는 때때로 최신 버전의 Bazel로 구축되지 않습니다. 이전 버전의 Bazel (예 : 5.1.1)을 설치할 수 있습니다.
경고 : 프로그램이 Protobuf를 사용하고 연결 또는 기타 문제를 겪는 경우 -DINSTALL_PROTOBUF=ON 옵션을 시도 할 수 있습니다. Dockerfiles는 이미 올바른 버전의 Protobuf로 제작되었으므로 Dockerfile에서 먼저 프로그램을 시도해 볼 수 있습니다.
git clone https://github.com/FloopCZ/tensorflow_cc.git
cd tensorflow_cc
cd tensorflow_cc
mkdir build && cd build
cmake ..
make
sudo make install
sudo ldconfig
경고 : Intel CPU 생성에 대한 최적화 >=haswell 기본적으로 활성화됩니다. haswell Generation보다 오래된 프로세서가있는 경우 빌드 전에 export CC_OPT_FLAGS="-march=native" 실행할 수 있습니다. 이 명령은 현재 CPU 생성에 대한 최적의 최적화를 제공하지만 빌드 라이브러리가 구형 세대와 호환되지 않을 수 있습니다.
경고 : 저 메모리 또는 많은 CPU 환경에서, 바젤 스케줄러는 자원 소비 추정치를 놓칠 수 있으며 빌드는 메모리 외 킬러에 의해 종료 될 수 있습니다. 이 경우 CMAKE (예 : cmake -DLOCAL_RAM_RESOURCES=2048 -DLOCAL_CPU_RESOURCES=4 ..
# cleanup bazel build directory
rm -rf ~/.cache
# remove the build folder
cd .. && rm -rf build
// example.cpp
# include < tensorflow/core/platform/env.h >
# include < tensorflow/core/public/session.h >
# include < iostream >
using namespace std ;
using namespace tensorflow ;
int main ()
{
Session* session;
Status status = NewSession ( SessionOptions (), &session);
if (!status. ok ()) {
cout << status. ToString () << " n " ;
return 1 ;
}
cout << " Session successfully created. n " ;
} # CMakeLists.txt
find_package (TensorflowCC REQUIRED)
add_executable (example example.cpp)
# Link the Tensorflow library.
target_link_libraries (example TensorflowCC::TensorflowCC)
# You may also link cuda if it is available.
# find_package(CUDA)
# if(CUDA_FOUND)
# target_link_libraries(example ${CUDA_LIBRARIES})
# endif() mkdir build && cd build
cmake .. && make
./example
아직 확실하지 않은 경우 Ubuntu 및 Arch Linux의 Dockerfiles에 문의하십시오.