เรียกใช้รุ่น Tensorflow ใน C ++ โดยไม่ต้องใช้ Bazel โดยไม่ต้องติดตั้ง TensorFlow และไม่มีการรวบรวม TensorFlow ดำเนินการจัดการเทนเซอร์ใช้การดำเนินการที่กระตือรือร้นและเรียกใช้โมเดลที่บันทึกไว้โดยตรงจาก C ++
// Read the graph
cppflow::model model ( " saved_model_folder " );
// Load an image
auto input = cppflow::decode_jpeg(cppflow::read_file(std::string( " image.jpg " )));
// Cast it to float, normalize to range [0, 1], and add batch_dimension
input = cppflow::cast(input, TF_UINT8, TF_FLOAT);
input = input / 255 .f;
input = cppflow::expand_dims(input, 0 );
// Run
auto output = model(input);
// Show the predicted class
std::cout << cppflow::arg_max(output, 1 ) << std::endl;คุณสามารถดูตัวอย่างเพื่อดูตัวอย่างเต็มรูปแบบเกี่ยวกับวิธีการโหลดเครือข่ายลึกและป้อนด้วยภาพตัวอย่าง
CPPFLOW ใช้ TensorFlow C API เพื่อเรียกใช้โมเดลซึ่งหมายความว่าคุณสามารถใช้งานได้โดยไม่ต้องติดตั้ง TensorFlow และไม่ต้องรวบรวมที่เก็บ TensorFlow ทั้งหมดด้วย Bazel คุณเพียงแค่ต้องดาวน์โหลด C API ด้วยโครงการนี้คุณสามารถจัดการและเรียกใช้โมเดลของคุณใน C ++ โดยไม่ต้องกังวลเกี่ยวกับ Void, Malloc หรือฟรี ด้วย CPPFLOW ที่คุณสามารถทำได้อย่างง่ายดาย:
เนื่องจากมันใช้ TensorFlow 2 C API คุณเพียงแค่ต้องดาวน์โหลดให้ตรวจสอบเอกสารเพื่อดูคำแนะนำเกี่ยวกับวิธีการทำ
หลังจากนั้นคุณสามารถติดตั้งไลบรารี:
git clone [email protected]:serizba/cppflow.git
cd cppflow/examples/load_model
mkdir build
cd build
cmake ..
make -j
make installตอนนี้คุณสามารถตรวจสอบคู่มือ QuickStart เพื่อเรียกใช้โปรแกรมโดยใช้ CPPFLOW
ตรวจสอบเอกสารที่ https://serizba.github.io/cppflow/
ที่นั่นคุณสามารถค้นหาคำแนะนำ QuickStart และข้อมูลเพิ่มเติมเกี่ยวกับวิธีการติดตั้งไลบรารีและเรียกใช้ตัวอย่าง
CPPFLOW นั้นเป็นเสื้อคลุมเหนือ Tensorflow C API คลาสพื้นฐานเทนเซอร์เป็นเสื้อคลุมของเทนเซอร์ที่กระตือรือร้นของ TF และมันก็เป็นตัวชี้ในการเป็นตัวแทน TF
TF C API จัดเตรียมเครื่องมือในการเรียก TF RAW OPS ทั้งหมด แต่การใช้มันทำให้เกิดความสับสน CPPFLOW มีส่วนหน้ามากกว่าฟังก์ชั่นเหล่านี้ดังนั้นจึงสามารถเรียกได้ง่ายว่าเป็นฟังก์ชัน C ++ ปกติ เพื่อให้ได้สิ่งนี้ไฟล์ OPS มี (ส่วนใหญ่) ฟังก์ชั่น TF RAW OPS ทั้งหมด แต่มีอินเทอร์เฟซ C ++ อย่างง่าย ไฟล์นี้ถูกสร้างขึ้นโดยอัตโนมัติโดยใช้สคริปต์ขนาดเล็ก
CPPFLOW ยังมีเสื้อคลุมในรุ่นที่บันทึกไว้ TF ซึ่งเป็นคลาสรุ่นเพื่อให้สามารถเปิดและดำเนินการได้อย่างง่ายดาย
หากคุณยินดีที่จะมีส่วนร่วมในโครงการนี้โปรดไปข้างหน้าการเยี่ยมชมแผนงานการพัฒนาของ CPPFLOW PR หรือปัญหาที่ contributor_wanted เป็นพิเศษหรือมีปัญหายินดีต้อนรับสู่ผู้มีส่วนร่วมใหม่
หากคุณใช้รหัสนี้หรือค้นหางานนี้มีประโยชน์ในการวิจัยของคุณโปรดอ้างอิงเรา:
@software{
izquierdo2019cppflow,
author = {Izquierdo, Sergio},
doi = {10.5281/zenodo.7107618},
title = {{cppflow: Run TensorFlow models in C++ without installation and without Bazel}},
url = {https://github.com/serizba/cppflow},
version = {2.0.0},
month = {5},
year = {2019}
}
เราใช้คู่มือสไตล์ C ++ ของ Google โดยใช้ CPPLINT CODE CODE เราใช้คู่มือสไตล์ Python ของ Google โดยใช้รหัส Linker Pylint แบบคงที่โดยใช้การกำหนดค่า pylintrc ที่แนบมา
CPPFLOW ไม่เกี่ยวข้องกับ TensorFlow ไอคอน CPPFLOW เป็นโลโก้รุ่น TensorFlow ที่แก้ไขแล้ว Tensorflow โลโก้ Tensorflow และเครื่องหมายใด ๆ ที่เกี่ยวข้องเป็นเครื่องหมายการค้าของ Google Inc.