ML Community Day คือวันที่ 9 พฤศจิกายน! ร่วมกับเราสำหรับการปรับปรุงจาก TensorFlow, JAX และอื่น ๆ เรียนรู้เพิ่มเติม

ไลบรารีงาน TensorFlow Lite

ไลบรารีงาน TensorFlow Lite ประกอบด้วยชุดของไลบรารีเฉพาะงานที่มีประสิทธิภาพและใช้งานง่ายสำหรับนักพัฒนาแอปเพื่อสร้างประสบการณ์ ML ด้วย TFLite มีอินเทอร์เฟซแบบจำลองสำเร็จรูปที่ได้รับการปรับให้เหมาะสมสำหรับงานแมชชีนเลิร์นนิงยอดนิยมเช่นการจัดประเภทรูปภาพคำถามและคำตอบเป็นต้นอินเทอร์เฟซของโมเดลได้รับการออกแบบมาโดยเฉพาะสำหรับแต่ละงาน ไลบรารีงานทำงานข้ามแพลตฟอร์มและรองรับบน Java, C ++ และ Swift

สิ่งที่คาดหวังจากไลบรารีงาน

  • API ที่สะอาดและกำหนดไว้อย่างดีสามารถใช้งานได้โดยผู้เชี่ยวชาญที่ไม่ใช่ ML
    การอนุมานสามารถทำได้ภายในโค้ด 5 บรรทัด ใช้ API ที่มีประสิทธิภาพและใช้งานง่ายในไลบรารีงานเป็นหน่วยการสร้างเพื่อช่วยให้คุณพัฒนา ML ด้วย TFLite บนอุปกรณ์มือถือได้อย่างง่ายดาย

  • การประมวลผลข้อมูลที่ซับซ้อน แต่เป็นเรื่องธรรมดา
    รองรับการมองเห็นทั่วไปและตรรกะการประมวลผลภาษาธรรมชาติเพื่อแปลงระหว่างข้อมูลของคุณและรูปแบบข้อมูลที่โมเดลต้องการ ให้ตรรกะการประมวลผลแบบเดียวกันที่แชร์ได้สำหรับการฝึกอบรมและการอนุมาน

  • ได้รับประสิทธิภาพสูง
    การประมวลผลข้อมูลจะใช้เวลาไม่เกินสองสามมิลลิวินาทีเพื่อให้มั่นใจได้ว่าจะได้รับประสบการณ์การอนุมานที่รวดเร็วโดยใช้ TensorFlow Lite

  • ความสามารถในการขยายและการปรับแต่ง
    คุณสามารถใช้ประโยชน์ทั้งหมดที่โครงสร้างพื้นฐานไลบรารีงานมีให้และสร้าง API การอนุมาน Android / iOS ของคุณเองได้อย่างง่ายดาย

งานที่รองรับ

ด้านล่างนี้คือรายการประเภทงานที่รองรับ รายการนี้คาดว่าจะเติบโตขึ้นเมื่อเราเปิดใช้งานกรณีการใช้งานมากขึ้นเรื่อย ๆ

เรียกใช้ไลบรารีงานกับผู้รับมอบสิทธิ์

ผู้ร่วมประชุม เปิดใช้งานการเร่งฮาร์ดแวร์ของรุ่น TensorFlow Lite โดยใช้ประโยชน์จากตัวเร่งความเร็วบนอุปกรณ์เช่น GPU และ Coral Edge TPU การใช้สิ่งเหล่านี้สำหรับการทำงานของเครือข่ายประสาทเทียมให้ประโยชน์อย่างมากในแง่ของเวลาแฝงและประสิทธิภาพการใช้พลังงาน ตัวอย่างเช่น GPU สามารถ เพิ่มความเร็ว ในการตอบสนองได้สูงสุด 5 เท่า ในอุปกรณ์เคลื่อนที่และการอนุมานของ Coral Edge TPUs เร็ว กว่าซีพียูเดสก์ท็อป 10 เท่า

ไลบรารีงานให้การกำหนดค่าที่ง่ายดายและตัวเลือกสำรองสำหรับคุณในการตั้งค่าและใช้ผู้รับมอบสิทธิ์ ขณะนี้ตัวเร่งความเร็วต่อไปนี้ได้รับการสนับสนุนใน Task C ++ API:

Core ML delegate สำหรับ iOS และการเร่งความเร็วที่รองรับใน Task Java / Swift / Web API จะพร้อมให้ใช้งานเร็ว ๆ นี้

ตัวอย่างการใช้งาน GPU บน Android

ขั้นตอนที่ 1. ขึ้นอยู่กับปลั๊กอินตัวแทน GPU ในเป้าหมายการสร้าง bazel ของคุณเช่น:

deps = [
  "//tensorflow_lite_support/acceleration/configuration:gpu_plugin", # for GPU
]

ตัวเลือกการมอบสิทธิ์อื่น ๆ ได้แก่ :

"//tensorflow_lite_support/acceleration/configuration:nnapi_plugin", # for NNAPI
"//tensorflow_lite_support/acceleration/configuration:hexagon_plugin", # for Hexagon

ขั้นตอนที่ 2. กำหนดค่าตัวแทน GPU ในตัวเลือกงาน ตัวอย่างเช่นคุณสามารถตั้งค่า GPU ใน BertQuestionAnswerer ดังนี้:

// Initialization
BertQuestionAnswererOptions options;
// Load the TFLite model.
auto base_options = options.mutable_base_options();
base_options->mutable_model_file()->set_file_name(model_file);
// Turn on GPU delegation.
auto tflite_settings = base_options->mutable_compute_settings()->mutable_tflite_settings();
tflite_settings->set_delegate(Delegate::GPU);
// (optional) Turn on automatical fallback to TFLite CPU path on delegation errors.
tflite_settings->mutable_fallback_settings()->set_allow_automatic_fallback_on_execution_error(true);

// Create QuestionAnswerer from options.
std::unique_ptr<QuestionAnswerer> answerer = BertQuestionAnswerer::CreateFromOptions(options).value();

// Run inference on GPU.
std::vector<QaAnswer> results = answerer->Answer(context_of_question, question_to_ask);

สำรวจการตั้งค่าตัวเร่งความเร็วขั้นสูงเพิ่มเติม ที่นี่

ตัวอย่างการใช้งาน Coral Edge TPU

ขั้นตอนที่ 1. ขึ้นอยู่กับปลั๊กอินผู้ร่วมประชุม Coral Edge TPU ในเป้าหมายการสร้าง bazel ของคุณเช่น:

deps = [
  "//tensorflow_lite_support/acceleration/configuration:edgetpu_coral_plugin", # for Coral Edge TPU
]

ขั้นตอนที่ 2. กำหนดค่า Coral Edge TPU ในตัวเลือกงาน ตัวอย่างเช่นคุณสามารถตั้งค่า Coral Edge TPU ใน ImageClassifier ดังนี้:

// Initialization
ImageClassifierOptions options;
// Load the TFLite model.
options.mutable_base_options()->mutable_model_file()->set_file_name(model_file);
// Turn on Coral Edge TPU delegation.
options.mutable_base_options()->mutable_compute_settings()->mutable_tflite_settings()->set_delegate(Delegate::EDGETPU_CORAL);
// Create ImageClassifier from options.
std::unique_ptr<ImageClassifier> image_classifier = ImageClassifier::CreateFromOptions(options).value();

// Run inference on Coral Edge TPU.
const ClassificationResult result = image_classifier->Classify(*frame_buffer).value();

ขั้นตอนที่ 3. ติดตั้งแพ็คเกจ libusb-1.0-0-dev ดังต่อไปนี้ หากติดตั้งไว้แล้วให้ข้ามไปขั้นตอนถัดไป

# On the Linux
sudo apt-get install libusb-1.0-0-dev

# On the macOS
port install libusb
# or
brew install libusb

ขั้นตอนที่ 4. รวบรวมด้วยการกำหนดค่าต่อไปนี้ในคำสั่ง bazel ของคุณ:

# On the Linux
--define darwinn_portable=1 --linkopt=-lusb-1.0

# On the macOS, add '--linkopt=-lusb-1.0 --linkopt=-L/opt/local/lib/' if you are
# using MacPorts or '--linkopt=-lusb-1.0 --linkopt=-L/opt/homebrew/lib' if you
# are using Homebrew.
--define darwinn_portable=1 --linkopt=-L/opt/local/lib/ --linkopt=-lusb-1.0

# Windows is not supported yet.

ลองใช้ เครื่องมือสาธิต CLI ของไลบรารีงาน กับอุปกรณ์ Coral Edge TPU ของคุณ สำรวจเพิ่มเติมเกี่ยวกับ รุ่น Edge TPU ที่ได้รับการฝึกฝนและการตั้งค่า Edge TPU ขั้นสูง