TensorFlow model dönüştürmeye genel bakış

LiteRT ile kullandığınız makine öğrenimi (ML) modelleri, TensorFlow temel kitaplıkları ve araçları kullanılarak oluşturulup eğitilir. TensorFlow Core ile bir model oluşturduktan sonra bu modeli, LiteRT modeli olarak adlandırılan daha küçük ve daha verimli bir makine öğrenimi modeli biçimine dönüştürebilirsiniz. Bu bölümde, TensorFlow modellerinizi LiteRT model biçimine dönüştürme hakkında bilgi verilmektedir.

Dönüşüm iş akışı

TensorFlow modellerini LiteRT biçimine dönüştürme işlemi, makine öğrenimi modelinizin içeriğine bağlı olarak birkaç farklı şekilde yapılabilir. Bu sürecin ilk adımı olarak, modelinizin doğrudan dönüştürülüp dönüştürülemeyeceğini belirlemek için modeli değerlendirmeniz gerekir. Bu değerlendirme, modelin içeriğinin kullandığı TensorFlow işlemlerine göre standart LiteRT çalışma zamanı ortamları tarafından desteklenip desteklenmediğini belirler. Modeliniz desteklenen kümenin dışındaki işlemleri kullanıyorsa modelinizi yeniden düzenleyebilir veya gelişmiş dönüştürme tekniklerini kullanabilirsiniz.

Aşağıdaki şemada, bir modeli dönüştürme sürecindeki üst düzey adımlar gösterilmektedir.

TFLite dönüşüm iş akışı

Şekil 1. LiteRT dönüşüm iş akışı.

Aşağıdaki bölümlerde, LiteRT ile kullanılmak üzere modellerin değerlendirilmesi ve dönüştürülmesi süreci özetlenmiştir.

Giriş modeli biçimleri

Dönüştürücüyü aşağıdaki giriş modeli biçimleriyle kullanabilirsiniz:

Hem Keras hem de somut işlev modellerini SavedModel olarak kaydedebilir ve önerilen yolu kullanarak dönüştürebilirsiniz.

Jax modeliniz varsa TFLiteConverter.experimental_from_jax API'yi kullanarak LiteRT biçimine dönüştürebilirsiniz. Bu API'nin deneysel moddayken değişebileceğini unutmayın.

Dönüşüm değerlendirmesi

Modelinizi dönüştürmeyi denemeden önce değerlendirmeniz önemli bir adımdır. Değerlendirme yaparken modelinizin içeriğinin LiteRT biçimiyle uyumlu olup olmadığını belirlemeniz gerekir. Ayrıca modelinizin kullandığı veri boyutu, donanım işleme gereksinimleri ve modelin genel boyutu ile karmaşıklığı açısından mobil ve uç cihazlarda kullanıma uygun olup olmadığını da belirlemeniz gerekir.

Dönüştürücü, birçok modelde kutudan çıkarıldığı gibi çalışır. Ancak LiteRT'nin yerleşik operatör kitaplığı, TensorFlow'un temel operatörlerinin bir alt kümesini destekler. Bu nedenle, bazı modellerin LiteRT'ye dönüştürülmeden önce ek adımlar gerektirebileceği anlamına gelir. Ayrıca, LiteRT tarafından desteklenen bazı işlemler, performans nedenleriyle sınırlı kullanım şartlarına sahiptir. Modelinizin dönüştürme için yeniden düzenlenmesi gerekip gerekmediğini belirlemek üzere operator compatibility kılavuzuna bakın.

Model dönüştürme

LiteRT dönüştürücü, bir TensorFlow modelini alır ve bir LiteRT modeli (.tflite dosya uzantısıyla tanımlanan, optimize edilmiş bir FlatBuffer biçimi) oluşturur. SavedModel yükleyebilir veya kodda oluşturduğunuz bir modeli doğrudan dönüştürebilirsiniz.

Dönüştürücü, modeliniz için dönüşümü özelleştiren 3 ana işaret (veya seçenek) alır:

  1. Uyumluluk işaretleri, dönüştürmenin özel operatörlere izin verip vermeyeceğini belirtmenize olanak tanır.
  2. Optimizasyon işaretleri, dönüşüm sırasında uygulanacak optimizasyon türünü belirtmenize olanak tanır. En yaygın kullanılan optimizasyon tekniği eğitim sonrası nicelendirmedir.
  3. Meta veri işaretleri, dönüştürülen modele meta veri eklemenize olanak tanır. Bu sayede, modelleri cihazlara dağıtırken platforma özel sarmalayıcı kodu oluşturmak kolaylaşır.

Modelinizi Python API'yi veya komut satırı aracını kullanarak dönüştürebilirsiniz. Modelinizde dönüştürücüyü çalıştırma ile ilgili adım adım talimatlar için TF modelini dönüştürme kılavuzuna bakın.

Genellikle modelinizi standart LiteRT çalışma zamanı ortamı veya LiteRT (Beta) için Google Play Hizmetleri çalışma zamanı ortamı için dönüştürürsünüz. Bazı gelişmiş kullanım alanları, model çalışma zamanı ortamının özelleştirilmesini gerektirir. Bu da dönüşüm sürecinde ek adımlar gerektirir. Daha fazla bilgi için Android'e genel bakış bölümündeki gelişmiş çalışma zamanı ortamı bölümünü inceleyin.

Gelişmiş dönüşüm

Modelinizde dönüştürücüyü çalıştırırken hatalarla karşılaşırsanız büyük olasılıkla operatör uyumluluğu sorununuz vardır. TensorFlow Lite, tüm TensorFlow işlemlerini desteklemez. Modelinizi yeniden düzenleyerek veya değiştirilmiş bir LiteRT biçimi modeli ve bu model için özel bir çalışma zamanı ortamı oluşturmanıza olanak tanıyan gelişmiş dönüştürme seçeneklerini kullanarak bu sorunları çözebilirsiniz.

  • TensorFlow ve LiteRT model uyumluluğuyla ilgili dikkat edilmesi gereken noktalar hakkında daha fazla bilgi için Model uyumluluğuna genel bakış başlıklı makaleyi inceleyin.
  • Model uyumluluğuna genel bakış bölümündeki konular, modelinizi yeniden düzenlemeyle ilgili gelişmiş teknikleri (ör. Operatör seçme kılavuzu) kapsar.
  • İşlemlerin ve sınırlamaların tam listesi için LiteRT Ops sayfasına bakın.

Sonraki adımlar