سازگاری اپراتورهای TensorFlow Lite و TensorFlow

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

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

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

انواع پشتیبانی شده

بیشتر عملیات int8 استنتاج را از نقطه شناور ( float32 ) و float32 ( uint8 ، int8 ) هدف قرار می دهند ، اما بسیاری از گزینه ها هنوز برای انواع دیگر مانند tf.float16 و رشته ها کاربرد ندارند.

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

عملیات و محدودیت های پشتیبانی شده

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

تبدیل مستقیم به جلو ، ثابت تاشو و ذوب شدن

تعدادی از عملیات TensorFlow را می توان توسط TensorFlow Lite پردازش کرد حتی اگر معادل مستقیمی ندارند. این مورد در مورد عملیاتی است که می توانند به راحتی از نمودار حذف شوند ( tf.identity ) ، جایگزین شوند با tf.placeholder ( tf.placeholder ) ، یا در عملیات پیچیده tf.nn.bias_add ( tf.nn.bias_add ). حتی برخی از عملیات پشتیبانی شده نیز ممکن است بعضی اوقات از طریق یکی از این فرایندها حذف شود.

در اینجا لیستی غیر کامل از عملیات TensorFlow آورده شده است که معمولاً از نمودار حذف می شود:

عملیات تجربی

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

  • CALL
  • CONCAT_EMBEDDINGS
  • CUSTOM
  • EMBEDDING_LOOKUP_SPARSE
  • HASHTABLE_LOOKUP
  • LSH_PROJECTION
  • SKIP_GRAM
  • SVDF