LiteRT ve TensorFlow operatör uyumluluğu

Modelinizde kullandığınız makine öğrenimi (ML) operatörleri, bir TensorFlow modelinden LiteRT biçimine. LiteRT dönüştürücü ortak olarak kullanılan sınırlı sayıda TensorFlow işlemini destekler çıkarım modelleridir. Başka bir deyişle, her model doğrudan dönüştürülebilir değildir. Dönüştürücü aracı, başka operatörler eklemenize olanak tanır. Ancak, Bu şekilde modelinizin LiteRT çalışma zamanını da modelinizi yürütmek için kullandığınız, becerinizi sınırlandırabilir. çalışma zamanı dağıtım seçeneklerini kullanın: Google Play Hizmetleri.

LiteRT Dönüştürücüsü, modeli analiz etmek için tasarlanmıştır yapıyı ve yapısını optimize ederek doğrudan desteklenen operatörler. Örneğin, dönüştürücü, bunları birleştirin operatörleriyle eşleştirilir.

Desteklenen işlemler için bile, bazen belirli kullanım kalıplarının olması neden olması gerekir. TensorFlow oluşturmayı anlamanın en iyi yolu birlikte kullanılabilen LiteRT, operasyonların nasıl dönüştürüldüğünü ve ve bu sürecin getirdiği sınırlamalarla birlikte optimize edilir.

Desteklenen operatörler

LiteRT yerleşik operatörleri, Bunlar, TensorFlow temel kitaplığının parçası olan uygulamalardır. TensorFlow modeliniz bileşik operatör biçiminde özel operatörler de dahil edebilirsiniz ya da yeni operatör eklemek için bu seçeneği kullanabilirsiniz. Aşağıdaki şemada, tablodaki işlecini kullanın.

TensorFlow operatörleri

Bu makine öğrenimi model operatörleri yelpazesinden desteklenen modellerin sayısı:

  1. Yalnızca LiteRT yerleşik operatörü olan modeller. (Önerilen)
  2. Yerleşik operatörlere sahip modeller ve TensorFlow'u seçin temel operatörlerdir.
  3. Yerleşik operatörlere, TensorFlow temel operatörlerine ve/veya Özel operatörler.

Modeliniz yalnızca LiteRT'i dönüştürmek için ek işaretler gerekmez. Bu Bu model, sorunsuz bir şekilde dönüşüm gerçekleştireceği için önerilen yoldur ve varsayılan LiteRT çalışma zamanını kullanarak daha basit şekilde optimize edilir ve çalıştırılır. Modeliniz için daha fazla dağıtım seçeneğiniz de vardır. Google Play Hizmetleri. Buradan, LiteRT dönüştürücü kılavuzu. Görüntüleyin LiteRT Operasyonları sayfasından yerleşik operatörler listesidir.

Çekirdek kitaplıktan belirli TensorFlow işlemlerini dahil etmeniz gerekirse, dönüşüm sırasında bunu belirtmeniz ve çalışma zamanınızın bunları içerdiğinden emin olmanız gerekir. anlamına gelir. Aşağıdakiler için TensorFlow operatörleri seçme konusuna bakın adımları uygulayın.

Mümkün olduğunca dönüştürülmüştür. Özel operatörler iki operatör de bir yapılandırmanın birleşimiyle ya da tamamen yeni bir tane tanımlayarak birçok temel TensorFlow operatörünü kullanabilirsiniz. Özel operatörler dönüştürüldüğünde, genel yapılandırmanın boyutunu büyütebilir. yerleşik LiteRT kitaplığının dışında bağımlılıklar oluşturarak model oluşturabilirsiniz. Özel olarak mobil veya cihaz dağıtımı için oluşturulmamışsa özel işlemler yüksek performansa neden olabilir. sunucu ortamına kıyasla kaynak kısıtlamalı cihazlar Son olarak, tıpkı belirli TensorFlow temel operatörleri ve özel operatörleri gibi şunu gerektirir: model çalışma zamanı ortamını değiştirme Bu da, Google Play Hizmetleri.

Desteklenen türler

Çoğu LiteRT işlemi hem kayan noktayı (float32) hem de nicel (uint8, int8) çıkarım, ancak birçok işlem henüz diğer türler için tf.float16 ve dizeler gibi.

İşlemlerin farklı bir versiyonunu kullanmak dışında, arasındaki fark, öğelerin dönüştürülme şeklidir. Nicel dönüşüm için tensörler için dinamik aralık bilgisi gerekir. Bu "sahte nicelik" gerektirir modeli eğitimi sırasında, aralık bilgilerini hareket halindeyken veya kalibrasyon veri kümesi aracılığıyla en iyi uygulamaları gözden geçireceğiz. Görüntüleyin nicelleştirme bölümüne bakabilirsiniz.

Basit dönüşümler, sabit katlama ve birleştirme

Bazı TensorFlow işlemleri LiteRT tarafından bile işlenebilir ancak doğrudan eşdeğerleri yoktur. Bu durum, Çevik yaklaşımın grafikten çıkarılarak (tf.identity), yerini tensörler alır (tf.placeholder) ya da daha karmaşık işlemlere (tf.nn.bias_add) dönüşür. Desteklenen bazı işlemler bile bazen bu işlemlerden biri aracılığıyla kaldırılabilir daha fazla bilgi edineceksiniz.

Genellikle kaldırılan TensorFlow işlemlerinin tam kapsamlı olmayan listesini burada bulabilirsiniz şu grafikten çıkar:

  • tf.add
  • tf.debugging.check_numerics
  • tf.constant
  • tf.div
  • tf.divide
  • tf.fake_quant_with_min_max_args
  • tf.fake_quant_with_min_max_vars
  • tf.identity
  • tf.maximum
  • tf.minimum
  • tf.multiply
  • tf.no_op
  • tf.placeholder
  • tf.placeholder_with_default
  • tf.realdiv
  • tf.reduce_max
  • tf.reduce_min
  • tf.reduce_sum
  • tf.rsqrt
  • tf.shape
  • tf.sqrt
  • tf.square
  • tf.subtract
  • tf.tile
  • tf.nn.batch_norm_with_global_normalization
  • tf.nn.bias_add
  • tf.nn.fused_batch_norm
  • tf.nn.relu
  • tf.nn.relu6
ziyaret edin.

Deneysel İşlemler

Aşağıdaki LiteRT işlemleri mevcut ancak özel kullanım için hazır değil modeller:

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