ที่เก็บนี้ทำให้การใช้งานของ Tensorflow C ++ API จากด้านนอกของโฟลเดอร์ซอร์สโค้ด Tensorflow และไม่มีการใช้ระบบ Bazel Build
ที่เก็บนี้มีสองโครงการ CMake การดาวน์โหลดโครงการ tensorflow_cc สร้างและติดตั้ง TensorFlow C ++ API ลงในระบบปฏิบัติการและโครงการตัวอย่างแสดงให้เห็นถึงการใช้งานที่ง่าย
หากคุณต้องการเริ่มใช้โครงการนี้ทันทีให้ดึงภาพ prebuilt บน Docker Hub!
เรียกใช้ภาพบน CPU:
docker run -it floopcz/tensorflow_cc:ubuntu /bin/bashหากคุณต้องการใช้ประโยชน์จาก Nvidia GPU ให้ติดตั้ง Nvidia Docker และ Run:
docker run --gpus all -it floopcz/tensorflow_cc:ubuntu-cuda /bin/bashรายการรูปภาพที่มีอยู่:
| ชื่อภาพ | คำอธิบาย |
|---|---|
floopcz/tensorflow_cc:ubuntu | Ubuntu Build of tensorflow_cc |
floopcz/tensorflow_cc:ubuntu-cuda | Ubuntu Build of tensorflow_cc + nvidia cuda |
floopcz/tensorflow_cc:archlinux | arch linux build ของ tensorflow_cc |
floopcz/tensorflow_cc:archlinux-cuda | Arch Linux Build ของ tensorflow_cc + nvidia cuda |
เพื่อสร้างภาพตัวหนึ่งด้วยตัวคุณเองเช่น ubuntu , Run, 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 เป็น 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
หากคุณต้องการการสนับสนุน GPU บน Ubuntu โปรดติดตั้งชุดเครื่องมือ Nvidia Cuda (> = 11.1), ไดรเวอร์ Nvidia, Cudnn และแพ็คเกจ cuda-command-line-tools ขั้นตอนการสร้างจะตรวจจับ CUDA โดยอัตโนมัติหากติดตั้งในไดเรกทอรี /opt/cuda หรือ /usr/local/cuda
sudo pacman -S base-devel bazel cmake git python python-numpy wget
สำหรับการสนับสนุน GPU บน Arch ให้ติดตั้งสิ่งต่อไปนี้:
sudo pacman -S cuda cudnn nvidia
คำเตือน: บางครั้ง TensorFlow เวอร์ชันใหม่บางครั้งล้มเหลวในการสร้างด้วย Bazel เวอร์ชันล่าสุด คุณอาจต้องการติดตั้ง Bazel รุ่นเก่า (เช่น 5.1.1)
คำเตือน: หากโปรแกรมของคุณใช้ protobuf และคุณพบการเชื่อมโยงหรือปัญหาอื่น ๆ คุณสามารถลอง -DINSTALL_PROTOBUF=ON ตัวเลือกในการติดตั้งเวอร์ชัน protobuf ที่ตรงกับเวอร์ชันที่รวมกับ TensorFlow 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
คำเตือน: การเพิ่มประสิทธิภาพสำหรับการสร้าง CPU Intel >=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
หากคุณยังไม่แน่ใจให้ปรึกษา Dockerfiles สำหรับ Ubuntu และ Arch Linux