سوالات متداول

اگر پاسخی برای سؤال خود در اینجا پیدا نکردید، لطفاً مستندات مفصل ما را برای موضوع بررسی کنید یا یک مشکل GitHub را ثبت کنید.

تبدیل مدل

چه فرمت هایی برای تبدیل از TensorFlow به TensorFlow Lite پشتیبانی می شود؟

فرمت های پشتیبانی شده در اینجا فهرست شده اند

چرا برخی از عملیات ها در TensorFlow Lite اجرا نمی شوند؟

به منظور سبک نگه داشتن TFLite، فقط برخی از اپراتورهای TF (که در لیست مجاز ذکر شده اند) در TFLite پشتیبانی می شوند.

چرا مدل من تبدیل نمی شود؟

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

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

چگونه آزمایش کنم که یک مدل TensorFlow Lite مانند مدل اصلی TensorFlow رفتار کند؟

بهترین راه برای آزمایش، مقایسه خروجی‌های مدل‌های TensorFlow و TensorFlow Lite برای ورودی‌های یکسان (داده‌های آزمایش یا ورودی‌های تصادفی) است که در اینجا نشان داده شده است.

چگونه ورودی/خروجی های بافر پروتکل GraphDef را تعیین کنم؟

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

اگر نترون نمی تواند نمودار را باز کند، می توانید ابزار summarize_graph را امتحان کنید.

اگر ابزار summarize_graph با خطا مواجه شد، می‌توانید GraphDef را با TensorBoard تجسم کنید و ورودی‌ها و خروجی‌ها را در نمودار جستجو کنید. برای تجسم یک فایل .pb از اسکریپت import_pb_to_tensorboard.py مانند زیر استفاده کنید:

python import_pb_to_tensorboard.py --model_dir <model path> --log_dir <log dir path>

چگونه یک فایل .tflite را بررسی کنم؟

نترون ساده ترین راه برای تجسم یک مدل TensorFlow Lite است.

اگر نترون نمی تواند مدل TensorFlow Lite شما را باز کند، می توانید اسکریپت visualize.py را در مخزن ما امتحان کنید.

اگر از TF 2.5 یا نسخه جدیدتر استفاده می کنید

python -m tensorflow.lite.tools.visualize model.tflite visualized_model.html

در غیر این صورت می توانید این اسکریپت را با Bazel اجرا کنید

bazel run //tensorflow/lite/tools:visualize model.tflite visualized_model.html

بهينه سازي

چگونه می توانم اندازه مدل TensorFlow Lite تبدیل شده خود را کاهش دهم؟

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

اگر بازآموزی مدل یک گزینه است، آموزش آگاهی از کوانتیزاسیون را در نظر بگیرید. با این حال، توجه داشته باشید که آموزش آگاهی از کوانتیزاسیون تنها برای زیرمجموعه‌ای از معماری‌های شبکه عصبی کانولوشن در دسترس است.

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

چگونه می توانم عملکرد TensorFlow Lite را برای کار یادگیری ماشین خود بهینه کنم؟

فرآیند سطح بالا برای بهینه سازی عملکرد TensorFlow Lite چیزی شبیه به این است:

  • مطمئن شوید که مدل مناسبی برای کار دارید. برای طبقه بندی تصاویر، TensorFlow Hub را بررسی کنید.
  • تعداد رشته ها را تغییر دهید. بسیاری از اپراتورهای TensorFlow Lite از هسته های چند رشته ای پشتیبانی می کنند. برای انجام این کار می توانید از SetNumThreads() در C++ API استفاده کنید. با این حال، افزایش نخ ها منجر به تغییر عملکرد بسته به محیط می شود.
  • از شتاب دهنده های سخت افزاری استفاده کنید. TensorFlow Lite از شتاب مدل برای سخت افزار خاص با استفاده از نمایندگان پشتیبانی می کند. برای اطلاعات در مورد شتاب‌دهنده‌هایی که پشتیبانی می‌شوند و نحوه استفاده از آن‌ها با مدل روی دستگاهتان، به راهنمای نمایندگان ما مراجعه کنید.
  • (پیشرفته) مدل پروفایل. ابزار بنچمارک Tensorflow Lite یک نمایه ساز داخلی دارد که می تواند آمار هر اپراتور را نشان دهد. اگر می دانید چگونه می توانید عملکرد یک اپراتور را برای پلتفرم خاص خود بهینه کنید، می توانید یک اپراتور سفارشی پیاده سازی کنید.

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