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.
Bu makine öğrenimi model operatörleri yelpazesinden desteklenen modellerin sayısı:
- Yalnızca LiteRT yerleşik operatörü olan modeller. (Önerilen)
- Yerleşik operatörlere sahip modeller ve TensorFlow'u seçin temel operatörlerdir.
- 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
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