このリポジトリにより、Tensorflowソースコードフォルダーの外側からのTensorflow C ++ APIの使用が可能になり、Bazelビルドシステムを使用せずに使用できます。
このリポジトリには、2つの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のArch Linuxビルド |
floopcz/tensorflow_cc:archlinux-cuda | tensorflow_cc + Nvidia cudaのArch Linuxビルド |
自分で画像の1つを作成するには、 ubuntuなどを実行します。
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をデフォルトのPythonに設定します。
update-alternatives --install /usr/bin/python python /usr/bin/python3 1
Tensorflow自体を構築するために、ビルド手順にはBazelも必要です。
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 Drivers、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を使用してリンケージやその他の問題に遭遇した場合、Tensorflowにバンドルされたバージョンに一致するProtoBufバージョンをインストールするために、 -DINSTALL_PROTOBUF=ON optionを試すことができます。当社の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 Generation >=haswellの最適化はデフォルトで有効になります。 haswell Generationよりも古いプロセッサがある場合は、ビルド前にexport CC_OPT_FLAGS="-march=native"することをお勧めします。このコマンドは、現在のCPU生成に対して可能な限り最良の最適化を提供しますが、構築されたライブラリが古い世代と互換性がない場合があります。
警告:低メモリまたは多くのCPU環境では、Bazelスケジューラはリソース消費の見積もりを見逃す可能性があり、ビルドはメモリ外キラーによって終了する場合があります。その場合は、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に相談してください。