Repositori ini memungkinkan penggunaan API TensorFlow C ++ dari luar folder kode sumber TensorFlow dan tanpa menggunakan sistem pembuatan Bazel.
Repositori ini berisi dua proyek CMake. Proyek TensorFlow_CC mengunduh, membangun, dan menginstal TensorFlow C ++ API ke dalam sistem operasi dan contoh proyek menunjukkan penggunaannya yang sederhana.
Jika Anda ingin mulai menggunakan proyek ini segera, ambil gambar prebuilt di Docker Hub!
Menjalankan gambar di CPU:
docker run -it floopcz/tensorflow_cc:ubuntu /bin/bashJika Anda juga ingin menggunakan GPU NVIDIA Anda, instal NVIDIA Docker dan jalankan:
docker run --gpus all -it floopcz/tensorflow_cc:ubuntu-cuda /bin/bashDaftar gambar yang tersedia:
| Nama gambar | Keterangan |
|---|---|
floopcz/tensorflow_cc:ubuntu | Ubuntu build dari tensorflow_cc |
floopcz/tensorflow_cc:ubuntu-cuda | Ubuntu build dari tensorflow_cc + nvidia cuda |
floopcz/tensorflow_cc:archlinux | Arch Linux Build dari tensorflow_cc |
floopcz/tensorflow_cc:archlinux-cuda | Arch Linux Build dari tensorflow_cc + NVIDIA CUDA |
Untuk membangun salah satu gambar sendiri, misalnya ubuntu , jalankan:
docker build -t floopcz/tensorflow_cc:ubuntu -f Dockerfiles/ubuntu . Instal Persyaratan Repositori:
sudo apt-get install cmake curl g++-7 git python3-dev python3-numpy sudo wget
Siapkan Python 3 menjadi Python default:
update-alternatives --install /usr/bin/python python /usr/bin/python3 1
Untuk membangun TensorFlow itu sendiri, prosedur pembuatan juga membutuhkan 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
Jika Anda memerlukan dukungan GPU di Ubuntu, silakan juga menginstal NVIDIA CUDA TOOLKIT (> = 11.1), driver NVIDIA, CUDNN, dan paket cuda-command-line-tools . Prosedur pembuatan akan secara otomatis mendeteksi CUDA jika dipasang di /opt/cuda atau /usr/local/cuda .
sudo pacman -S base-devel bazel cmake git python python-numpy wget
Untuk dukungan GPU di Arch, juga instal yang berikut:
sudo pacman -S cuda cudnn nvidia
Peringatan: Versi TensorFlow yang lebih baru terkadang gagal dibangun dengan versi terbaru Bazel. Anda mungkin ingin menginstal versi Bazel yang lebih lama (misalnya, 5.1.1).
PERINGATAN: Jika program Anda menggunakan Protobuf dan Anda menghadapi tautan atau masalah lainnya, Anda dapat mencoba -DINSTALL_PROTOBUF=ON Option untuk menginstal versi protobuf yang cocok dengan versi yang dibundel dengan TensorFlow. DockerFiles kami sudah dibangun dengan versi protobuf yang tepat, jadi Anda mungkin ingin mencoba program Anda di DockerFile terlebih dahulu.
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
Peringatan: Optimalisasi untuk Intel CPU Generation >=haswell diaktifkan secara default. Jika Anda memiliki prosesor yang lebih tua dari haswell Generation, Anda mungkin ingin menjalankan export CC_OPT_FLAGS="-march=native" sebelum membangun. Perintah ini memberikan optimisasi terbaik untuk generasi CPU Anda saat ini, tetapi dapat menyebabkan perpustakaan yang dibangun tidak sesuai dengan generasi yang lebih tua.
Peringatan: Di lingkungan dengan memori rendah atau banyak-CPU, penjadwal Bazel dapat kehilangan perkiraan konsumsi sumber daya dan build dapat diakhiri oleh pembunuh di luar memori. Jika itu kasus Anda, pertimbangkan untuk menambahkan parameter batas sumber daya ke CMake, misalnya, 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
Jika Anda masih tidak yakin, konsultasikan dengan DockerFiles untuk Ubuntu dan Arch Linux.