Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Zgodność operatora z TensorFlow Lite i TensorFlow

TensorFlow Lite obsługuje szereg operacji TensorFlow używanych w typowych modelach wnioskowania. Ponieważ są one przetwarzane przez Konwerter optymalizujący TensorFlow Lite, operacje te mogą zostać wyeliminowane lub połączone, zanim obsługiwane operacje zostaną zmapowane do ich odpowiedników w TensorFlow Lite.

Ponieważ wbudowana biblioteka operatorów TensorFlow Lite obsługuje tylko ograniczoną liczbę operatorów TensorFlow, nie każdy model można konwertować. Nawet w przypadku obsługiwanych operacji czasami oczekuje się bardzo specyficznych wzorców użycia ze względu na wydajność. Spodziewamy się rozszerzenia zestawu obsługiwanych operacji w przyszłych wydaniach TensorFlow Lite.

Najlepszym sposobem, aby zrozumieć, jak zbudować model TensorFlow, który może być używany z TensorFlow Lite, jest dokładne rozważenie, w jaki sposób operacje są konwertowane i optymalizowane, wraz z ograniczeniami narzuconymi przez ten proces.

Obsługiwane typy

Większość operacji TensorFlow Lite jest ukierunkowanych zarówno na wnioskowanie zmiennoprzecinkowe ( float32 ), jak i kwantowane ( uint8 , int8 ), ale wiele uint8 int8 jeszcze innych typów, takich jak tf.float16 i stringi.

Oprócz używania różnych wersji operacji, inną różnicą między modelami zmiennoprzecinkowymi i kwantowymi jest sposób ich konwersji. Konwersja kwantowa wymaga informacji o zakresie dynamicznym dla tensorów. Wymaga to „fałszywej kwantyzacji” podczas uczenia modelu, uzyskiwania informacji o zasięgu za pomocą zestawu danych kalibracyjnych lub wykonywania oszacowania zasięgu „w locie”. Zobacz kwantyzację .

Obsługiwane operacje i ograniczenia

TensorFlow Lite obsługuje podzbiór operacji TensorFlow z pewnymi ograniczeniami. Pełna lista operacji i ograniczeń znajduje się na stronie TF Lite Ops .

Proste konwersje, ciągłe składanie i łączenie

Wiele operacji TensorFlow może być przetwarzanych przez TensorFlow Lite, nawet jeśli nie mają one bezpośredniego odpowiednika. Dzieje się tak w przypadku operacji, które można po prostu usunąć z wykresu ( tf.identity ), zastąpić tensorami ( tf.placeholder ) lub tf.placeholder w bardziej złożone operacje ( tf.nn.bias_add ). Nawet niektóre obsługiwane operacje można czasami usunąć za pomocą jednego z tych procesów.

Oto niewyczerpująca lista operacji TensorFlow, które są zwykle usuwane z wykresu:

Operacje eksperymentalne

Dostępne są następujące operacje TensorFlow Lite, ale nie są one gotowe na modele niestandardowe:

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