Помогают защитить Большой Барьерный Риф с TensorFlow на Kaggle Присоединяйтесь вызов

Совместимость операторов TensorFlow Lite и TensorFlow

TensorFlow Lite поддерживает ряд операций TensorFlow, используемых в общих моделях вывода. Поскольку они обрабатываются оптимизирующим преобразователем TensorFlow Lite, эти операции могут быть исключены или объединены до того, как поддерживаемые операции будут сопоставлены с их аналогами TensorFlow Lite.

Поскольку встроенная библиотека операторов TensorFlow Lite поддерживает только ограниченное количество операторов TensorFlow, не каждая модель может быть преобразована. Даже для поддерживаемых операций иногда ожидаются очень специфические шаблоны использования из соображений производительности. Мы ожидаем расширить набор поддерживаемых операций в будущих выпусках TensorFlow Lite.

Лучший способ понять, как построить модель TensorFlow, которую можно использовать с TensorFlow Lite, - это тщательно продумать, как операции конвертируются и оптимизируются, а также ограничения, накладываемые этим процессом.

Поддерживаемые типы

Большинство операций TensorFlow Lite нацелены как на вывод с плавающей точкой ( float32 ), так и на квантованный ( uint8 , int8 ) вывод, но многие операции еще не работают с другими типами, такими как tf.float16 и строки.

Помимо использования разных версий операций, другое различие между моделями с плавающей запятой и квантованными моделями заключается в способе их преобразования. Квантованное преобразование требует информации о динамическом диапазоне для тензоров. Это требует «ложного квантования» во время обучения модели, получения информации о диапазоне через набор калибровочных данных или выполнения оценки диапазона «на лету». См. Квантование .

Поддерживаемые операции и ограничения

TensorFlow Lite поддерживает подмножество операций TensorFlow с некоторыми ограничениями. Полный список операций и ограничений см. На странице TF Lite Ops .

Прямые преобразования, постоянное фальцевание и фьюзинг

TensorFlow Lite может обрабатывать ряд операций TensorFlow, даже если у них нет прямого эквивалента. Это касается операций, которые можно просто удалить из графа ( tf.identity ), заменить тензорами ( tf.placeholder ) или объединить в более сложные операции ( tf.nn.bias_add ). Иногда даже некоторые поддерживаемые операции могут быть удалены с помощью одного из этих процессов.

Вот неполный список операций TensorFlow, которые обычно удаляются с графика:

Экспериментальные операции

Следующие операции TensorFlow Lite присутствуют, но не готовы для пользовательских моделей:

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