این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

با TensorFlow Lite شروع کنید

TensorFlow Lite تمام ابزارهای لازم برای تبدیل و اجرای مدل های TensorFlow را در دستگاه های تلفن همراه ، تعبیه شده و IoT فراهم می کند. راهنمای زیر هر مرحله از گردش کار توسعه دهنده را طی می کند و پیوندهایی به دستورالعمل های بیشتر ارائه می دهد.

1. یک مدل را انتخاب کنید

یک مدل TensorFlow یک ساختار داده است که شامل منطق و دانش شبکه یادگیری ماشینی است که برای حل یک مشکل خاص آموزش دیده است. روش های زیادی برای به دست آوردن یک مدل TensorFlow وجود دارد ، از استفاده از مدل های از قبل آموزش دیده گرفته تا آموزش شخصی شما.

برای استفاده از یک مدل با TensorFlow Lite ، شما باید یک مدل کامل TensorFlow را به قالب TensorFlow Lite تبدیل کنید - نمی توانید با استفاده از TensorFlow Lite یک مدل بسازید یا آموزش دهید. بنابراین شما باید با یک مدل معمولی TensorFlow شروع کنید ، و سپس مدل را تبدیل کنید .

از یک مدل از قبل آموزش دیده استفاده کنید

تیم TensorFlow Lite مجموعه ای از مدل های از قبل آموزش دیده را ارائه می دهد که انواع مشکلات یادگیری ماشین را برطرف می کند. این مدل ها به کار با TensorFlow Lite تبدیل شده اند و آماده استفاده در برنامه های شما هستند.

مدل های از قبل آموزش دیده عبارتند از:

لیست کامل مدلهای از قبل آموزش دیده را در مدلها مشاهده کنید .

مدل از منابع دیگر

بسیاری از مکان های دیگر نیز وجود دارد که می توانید مدل های TensorFlow از قبل آموزش دیده از جمله TuborFlow Hub را بدست آورید. در بیشتر موارد ، این مدل ها با فرمت TensorFlow Lite ارائه نمی شوند و شما مجبور هستید قبل از استفاده ، آنها را تبدیل کنید.

دوباره آموزش یک مدل (یادگیری انتقال)

یادگیری انتقال به شما امکان می دهد تا یک الگوی آموزش دیده را بگیرید و آن را مجدداً آموزش دهید تا یک کار دیگر را انجام دهید. به عنوان مثال ، یک مدل طبقه بندی تصویر می تواند برای شناسایی دسته های جدید تصویر بازآزمایی شود. آموزش مجدد زمان کمتری را می طلبد و به داده های کمتری نسبت به آموزش یک مدل از ابتدا نیاز دارد.

برای سفارشی کردن مدل های از قبل آموزش دیده به برنامه خود می توانید از آموزش انتقال استفاده کنید. بیاموزید که چگونه یادگیری انتقال را در گلهای Recognize با codelab TensorFlow انجام دهید.

آموزش یک مدل سفارشی

اگر مدل TensorFlow خود را طراحی کرده و آموزش داده اید یا مدلی را که از منبع دیگری به دست آمده است آموزش داده اید ، باید آن را به قالب TensorFlow Lite تبدیل کنید .

همچنین می توانید کتابخانه TensorFlow Lite Model Maker را امتحان کنید که روند آموزش یک مدل TensorFlow Lite را با استفاده از مجموعه های داده های ساده ساده می کند.

2. تبدیل مدل

TensorFlow Lite به گونه ای طراحی شده است که مدل ها را به صورت کارآمد در دستگاه های تلفن همراه و سایر دستگاه های جاسازی شده با منابع محاسبه و حافظه محدود اجرا کند. برخی از این بهره وری ناشی از استفاده از قالب خاص برای ذخیره سازی مدل ها است. قبل از استفاده توسط TensorFlow Lite ، مدل های TensorFlow باید به این قالب تبدیل شوند.

تبدیل مدل ها اندازه پرونده آنها را کاهش می دهد و بهینه سازی هایی را معرفی می کند که روی صحت تأثیر نمی گذارد. مبدل TensorFlow Lite گزینه هایی را فراهم می کند که به شما امکان می دهد تا با برخی از معامله ها ، اندازه پرونده را کاهش داده و سرعت اجرای آن را افزایش دهید.

مبدل TensorFlow Lite

مبدل TensorFlow Lite ابزاری است که به عنوان یک API Python موجود است و مدل های آموزش دیده TensorFlow را به قالب TensorFlow Lite تبدیل می کند. همچنین می تواند بهینه سازی هایی را معرفی کند که در بخش 4 به آن می پردازید ، مدل خود را بهینه کنید .

مثال زیر نشان می دهد SavedModel به SavedModel Lite تبدیل می شود:

import tensorflow as tf

converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
tflite_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_model)

شما می توانید مدل های TensorFlow 2.0 را به روشی مشابه تبدیل کنید.

مبدل را نیز می توانید از خط فرمان استفاده کنید ، اما API پایتون توصیه می شود.

گزینه ها

مبدل می تواند از انواع مختلف ورودی تبدیل کند.

هنگام تبدیل مدلهای 1.x TensorFlow ، این موارد است:

هنگام تبدیل مدل های TxSFFow 2.x ، این موارد است:

مبدل را می توان پیکربندی کرد تا بهینه سازی های مختلفی را اعمال کند که می تواند عملکرد را بهبود بخشد یا اندازه پرونده را کاهش دهد. در بخش 4 پوشش داده شده است ، مدل خود را بهینه کنید .

سازگاری را انتخاب می کند

TensorFlow Lite در حال حاضر از زیر مجموعه محدودی از عملیات TensorFlow پشتیبانی می کند . هدف بلند مدت برای پشتیبانی از کلیه عملیات TensorFlow است.

اگر مدلی که می خواهید تبدیل کنید شامل عملیات پشتیبانی نشده می باشد ، می توانید از TensorFlow Select استفاده کنید تا عملیات مربوط به TensorFlow را انجام دهید. این امر باعث می شود که باینری بزرگتر به دستگاه ها منتقل شود.

3. استنتاج را با مدل اجرا کنید

استنتاج فرآیند اجرای داده ها از طریق یک مدل برای به دست آوردن پیش بینی ها است. به یک مدل ، مترجم و داده ورودی نیاز دارد.

مترجم TensorFlow Lite

مترجم TensorFlow Lite کتابخانه ای است که یک فایل مدل را می گیرد ، عملیاتی را که در داده های ورودی تعریف می کند ، انجام می دهد و دسترسی به خروجی را فراهم می کند.

مترجم در چندین سیستم عامل کار می کند و یک API ساده برای اجرای مدل های TensorFlow Lite از Java ، Swift ، Objective-C ، C ++ و Python ارائه می دهد.

کد زیر مفسر دعوت شده از جاوا را نشان می دهد:

try (Interpreter interpreter = new Interpreter(tensorflow_lite_model_file)) {
  interpreter.run(input, output);
}

شتاب GPU و نمایندگان

برخی از دستگاه ها شتاب سخت افزاری را برای انجام عملیات یادگیری ماشین فراهم می کنند. به عنوان مثال ، بیشتر تلفن های همراه دارای GPU هستند که می توانند عملیات ماتریس نقطه شناور را سریعتر از یک CPU انجام دهند.

سرعت بالا می تواند قابل توجه باشد. به عنوان مثال ، یک مدل طبقه بندی تصویر MobileNet v1 هنگام استفاده از شتاب GPU ، 5.5 برابر سریعتر بر روی تلفن Pixel 3 اجرا می شود.

مترجم TensorFlow Lite را می توان با Delegates پیکربندی کرد تا از شتاب سخت افزاری در دستگاه های مختلف استفاده کند. GPU Delegate به مترجم اجازه می دهد تا عملیات صحیحی را روی GPU دستگاه انجام دهد.

کد زیر نماینده GPU در حال استفاده از Java را نشان می دهد:

GpuDelegate delegate = new GpuDelegate();
Interpreter.Options options = (new Interpreter.Options()).addDelegate(delegate);
Interpreter interpreter = new Interpreter(tensorflow_lite_model_file, options);
try {
  interpreter.run(input, output);
}

برای افزودن پشتیبانی از شتاب دهنده های سخت افزاری جدید ، می توانید نماینده خود را تعیین کنید .

Android و iOS

مترجم TensorFlow Lite برای استفاده از هر دو سیستم عامل اصلی موبایل آسان است. برای شروع ، راهنماهای سریع برنامه Android و iOS را کاوش کنید. برنامه های مثال برای هر دو سیستم عامل موجود است.

برای به دست آوردن كتابخانه های مورد نیاز ، توسعه دهندگان Android باید از TensorFlow Lite AAR استفاده كنند . توسعه دهندگان iOS باید از CocoaPods برای Swift یا Objective-C استفاده کنند .

لینوکس

جاسازی شده لینوکس بستر مهمی برای استقرار یادگیری ماشین است. برای شروع استفاده از Python برای انجام استنباط با مدل های TensorFlow Lite ، سریع برنامه پایتون را دنبال کنید.

به جای نصب کتابخانه C ++ ، به دستورالعمل های ساخت تابلوهای Raspberry Pi یا Arm64 (برای تابلوهایی مانند Odroid C2 ، Pine64 و NanoPi) مراجعه کنید.

میکروکنترلرها

TensorFlow Lite برای میکروکنترلرها یک درگاه آزمایشی از TensorFlow Lite است که با هدف میکروکنترلرها و سایر دستگاه های دارای تنها کیلوبایت حافظه ساخته شده است.

عملیات

اگر مدل شما به عملیات TensorFlow نیاز دارد که هنوز در TensorFlow Lite اجرا نشده است ، می توانید از TensorFlow Select استفاده کنید تا از آنها در مدل خود استفاده کنید. شما باید یک نسخه دلخواه از مترجم بسازید که شامل عملیات TensorFlow است.

شما می توانید از اپراتورهای سفارشی برای نوشتن عملیات خود استفاده کنید یا عملیات جدید را به TensorFlow Lite منتقل کنید.

نسخه های اپراتور به شما امکان می دهد ویژگی ها و پارامترهای جدیدی را به عملیات موجود اضافه کنید.

4- مدل خود را بهینه کنید

TensorFlow Lite ابزاری برای بهینه سازی اندازه و عملکرد مدل های شما ، اغلب با حداقل تأثیر در دقت ، فراهم می کند. مدلهای بهینه سازی شده ممکن است نیاز به آموزش ، تبدیل یا ادغام کمی پیچیده تر داشته باشند.

بهینه سازی یادگیری ماشینی یک زمینه در حال تحول است و مجموعه ابزار بهینه سازی مدل TensorFlow Lite با توسعه تکنیک های جدید بطور مداوم در حال رشد است.

کارایی

هدف از بهینه سازی مدل رسیدن به تعادل ایده آل عملکرد ، اندازه مدل و دقت در دستگاه معین است. بهترین عملکرد عملکرد می تواند به شما در طی کردن این روند کمک کند.

کمیت

با کم کردن دقت مقادیر و عملکردها در یک مدل ، کمیت می تواند هم اندازه مدل و هم زمان مورد نیاز برای استنتاج را کاهش دهد. در بسیاری از مدل ها ، حداقل دقت حداقل وجود دارد.

مبدل TensorFlow Lite کمی کردن مدل های TensorFlow را آسان می کند. کد پایتون زیر یک SavedModel و آن را در دیسک ذخیره می کند:

import tensorflow as tf

converter = tf.lite.TFLiteConverter.from_saved_model(saved_model_dir)
converter.optimizations = [tf.lite.Optimize.DEFAULT]
tflite_quant_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_quantized_model)

TensorFlow Lite از کاهش دقت مقادیر از نقطه کامل شناور تا شناورهای نیمه دقیق (float16) یا عدد صحیح 8 بیتی پشتیبانی می کند. در اندازه و دقت مدل برای هر انتخاب ، معامله ای وجود دارد ، و برخی از عملیات اجرای این نوع دقت های کاهش یافته را بهینه کرده اند.

برای کسب اطلاعات بیشتر در مورد کمیت ، به کمیت سنجی پس از آموزش مراجعه کنید .

ابزار بهینه سازی مدل

جعبه ابزار Optimization Tool مجموعه ای از ابزارها و تکنیک های طراحی شده برای آسانتر کردن مدل های خود برای توسعه دهندگان است. بسیاری از تکنیک ها را می توان در تمام مدلهای TensorFlow به کار برد و مختص TensorFlow Lite نیست ، اما بخصوص هنگام اجرای استنتاج در دستگاه هایی با منابع محدود بسیار ویژه هستند.

مراحل بعدی

اکنون که با TensorFlow Lite آشنا هستید ، برخی از منابع زیر را کشف کنید: