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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2. مدل را تبدیل کنید

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

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

مبدل TensorFlow Lite

مبدل TensorFlow Lite ابزاری است که به عنوان Python API موجود است و مدل های آموزش دیده 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 را به روشی مشابه تبدیل کنید.

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

گزینه ها

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

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

هنگام تبدیل مدل های TensorFlow 2.x ، این موارد عبارتند از:

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

سازگاری Ops

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

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

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

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

مفسر TensorFlow Lite

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

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

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

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

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

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

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

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

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

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 را جستجو کنید. برنامه های کاربردی نمونه برای هر دو سیستم عامل موجود است.

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

لینوکس

لینوکس تعبیه شده بستر مهمی برای استقرار یادگیری ماشین است. برای شروع استفاده از پایتون برای انجام استنباط با مدلهای 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_quantized_model = converter.convert()
open("converted_model.tflite", "wb").write(tflite_quantized_model)

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

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

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

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

مراحل بعدی

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