Ikhtisar konversi model

Model pembelajaran mesin (ML) yang Anda gunakan dengan TensorFlow Lite awalnya dibuat dan dilatih menggunakan library dan alat inti TensorFlow. Setelah membuat model dengan inti TensorFlow, Anda dapat mengonversinya ke format model ML yang lebih kecil dan lebih efisien yang disebut model TensorFlow Lite. Bagian ini memberikan panduan untuk mengonversi model TensorFlow Anda ke format model TensorFlow Lite.

Alur kerja konversi

Mengonversi model TensorFlow ke format TensorFlow Lite dapat mengambil beberapa jalur bergantung pada konten model ML Anda. Sebagai langkah pertama dari proses tersebut, Anda harus mengevaluasi model Anda untuk menentukan apakah model tersebut dapat langsung dikonversi. Evaluasi ini menentukan apakah konten model didukung oleh lingkungan runtime TensorFlow Lite standar berdasarkan operasi TensorFlow yang digunakannya. Jika model Anda menggunakan operasi di luar kumpulan yang didukung, Anda memiliki opsi untuk memfaktorkan ulang model Anda atau menggunakan teknik konversi lanjutan.

Diagram di bawah ini menunjukkan langkah-langkah tingkat tinggi dalam mengonversi model.

Alur kerja konversi TFLite

Gambar 1. Alur kerja konversi TensorFlow Lite.

Bagian berikut menguraikan proses evaluasi dan konversi model untuk digunakan dengan TensorFlow Lite.

Format model masukan

Anda dapat menggunakan konverter dengan format model input berikut:

Anda dapat menyimpan model fungsi Keras dan beton sebagai SavedModel dan mengonversi menggunakan jalur yang direkomendasikan.

Jika Anda memiliki model Jax, Anda dapat menggunakan TFLiteConverter.experimental_from_jax API untuk mengonversinya ke format TensorFlow Lite. Perhatikan bahwa API ini dapat berubah saat dalam mode eksperimental.

Evaluasi konversi

Mengevaluasi model Anda adalah langkah penting sebelum mencoba mengubahnya. Saat mengevaluasi, Anda ingin menentukan apakah konten model Anda kompatibel dengan format TensorFlow Lite. Anda juga harus menentukan apakah model Anda cocok untuk digunakan pada perangkat seluler dan edge dalam hal ukuran data yang digunakan model, persyaratan pemrosesan perangkat kerasnya, serta ukuran dan kompleksitas model secara keseluruhan.

Untuk banyak model, konverter harus bekerja di luar kotak. Namun, pustaka operator bawaan TensorFlow Lite mendukung subset operator inti TensorFlow, yang berarti beberapa model mungkin memerlukan langkah tambahan sebelum mengonversi ke TensorFlow Lite. Selain itu, beberapa operasi yang didukung oleh TensorFlow Lite telah membatasi persyaratan penggunaan karena alasan kinerja. Lihat panduan kompatibilitas operator untuk menentukan apakah model Anda perlu difaktorkan ulang untuk konversi.

Konversi model

Konverter TensorFlow Lite mengambil model TensorFlow dan menghasilkan model TensorFlow Lite (format FlatBuffer yang dioptimalkan yang diidentifikasi oleh ekstensi file .tflite ). Anda dapat memuat SavedModel atau langsung mengonversi model yang Anda buat dalam kode.

Konverter mengambil 3 tanda utama (atau opsi) yang menyesuaikan konversi untuk model Anda:

  1. Tanda kompatibilitas memungkinkan Anda menentukan apakah konversi harus mengizinkan operator khusus.
  2. Tanda pengoptimalan memungkinkan Anda menentukan jenis pengoptimalan yang akan diterapkan selama konversi. Teknik optimasi yang paling umum digunakan adalah post-training quanitization .
  3. Tanda metadata memungkinkan Anda untuk menambahkan metadata ke model yang dikonversi yang memudahkan pembuatan kode pembungkus khusus platform saat menerapkan model pada perangkat.

Anda dapat mengonversi model Anda menggunakan API Python atau alat baris perintah. Lihat panduan model Konversi TF untuk petunjuk langkah demi langkah dalam menjalankan konverter pada model Anda.

Biasanya Anda akan mengonversi model Anda untuk lingkungan waktu proses TensorFlow Lite standar atau lingkungan waktu proses layanan Google Play untuk TensorFlow Lite (Beta). Beberapa kasus penggunaan lanjutan memerlukan penyesuaian lingkungan waktu proses model, yang memerlukan langkah tambahan dalam proses konversi. Lihat bagian lingkungan runtime lanjutan dari ikhtisar Android untuk panduan lebih lanjut.

Konversi lanjutan

Jika Anda mengalami kesalahan saat menjalankan konverter pada model Anda, kemungkinan besar Anda memiliki masalah kompatibilitas operator. Tidak semua operasi TensorFlow didukung oleh TensorFlow Lite. Anda dapat mengatasi masalah ini dengan memfaktorkan ulang model Anda, atau dengan menggunakan opsi konversi lanjutan yang memungkinkan Anda membuat model format TensorFlow Lite yang dimodifikasi dan lingkungan waktu proses kustom untuk model tersebut.

  • Lihat Ikhtisar kompatibilitas model untuk informasi selengkapnya tentang pertimbangan kompatibilitas model TensorFlow dan TensorFlow Lite.
  • Topik di bawah Ikhtisar kompatibilitas model mencakup teknik lanjutan untuk memfaktorkan ulang model Anda, seperti panduan Pilih operator .
  • Untuk daftar lengkap operasi dan batasan, lihat halaman TensorFlow Lite Ops .

Langkah selanjutnya

,

Model pembelajaran mesin (ML) yang Anda gunakan dengan TensorFlow Lite awalnya dibuat dan dilatih menggunakan library dan alat inti TensorFlow. Setelah membuat model dengan inti TensorFlow, Anda dapat mengonversinya ke format model ML yang lebih kecil dan lebih efisien yang disebut model TensorFlow Lite. Bagian ini memberikan panduan untuk mengonversi model TensorFlow Anda ke format model TensorFlow Lite.

Alur kerja konversi

Mengonversi model TensorFlow ke format TensorFlow Lite dapat mengambil beberapa jalur bergantung pada konten model ML Anda. Sebagai langkah pertama dari proses tersebut, Anda harus mengevaluasi model Anda untuk menentukan apakah model tersebut dapat langsung dikonversi. Evaluasi ini menentukan apakah konten model didukung oleh lingkungan runtime TensorFlow Lite standar berdasarkan operasi TensorFlow yang digunakannya. Jika model Anda menggunakan operasi di luar kumpulan yang didukung, Anda memiliki opsi untuk memfaktorkan ulang model Anda atau menggunakan teknik konversi lanjutan.

Diagram di bawah ini menunjukkan langkah-langkah tingkat tinggi dalam mengonversi model.

Alur kerja konversi TFLite

Gambar 1. Alur kerja konversi TensorFlow Lite.

Bagian berikut menguraikan proses evaluasi dan konversi model untuk digunakan dengan TensorFlow Lite.

Format model masukan

Anda dapat menggunakan konverter dengan format model input berikut:

Anda dapat menyimpan model fungsi Keras dan beton sebagai SavedModel dan mengonversi menggunakan jalur yang direkomendasikan.

Jika Anda memiliki model Jax, Anda dapat menggunakan TFLiteConverter.experimental_from_jax API untuk mengonversinya ke format TensorFlow Lite. Perhatikan bahwa API ini dapat berubah saat dalam mode eksperimental.

Evaluasi konversi

Mengevaluasi model Anda adalah langkah penting sebelum mencoba mengubahnya. Saat mengevaluasi, Anda ingin menentukan apakah konten model Anda kompatibel dengan format TensorFlow Lite. Anda juga harus menentukan apakah model Anda cocok untuk digunakan pada perangkat seluler dan edge dalam hal ukuran data yang digunakan model, persyaratan pemrosesan perangkat kerasnya, serta ukuran dan kompleksitas model secara keseluruhan.

Untuk banyak model, konverter harus bekerja di luar kotak. Namun, pustaka operator bawaan TensorFlow Lite mendukung subset operator inti TensorFlow, yang berarti beberapa model mungkin memerlukan langkah tambahan sebelum mengonversi ke TensorFlow Lite. Selain itu, beberapa operasi yang didukung oleh TensorFlow Lite telah membatasi persyaratan penggunaan karena alasan kinerja. Lihat panduan kompatibilitas operator untuk menentukan apakah model Anda perlu difaktorkan ulang untuk konversi.

Konversi model

Konverter TensorFlow Lite mengambil model TensorFlow dan menghasilkan model TensorFlow Lite (format FlatBuffer yang dioptimalkan yang diidentifikasi oleh ekstensi file .tflite ). Anda dapat memuat SavedModel atau langsung mengonversi model yang Anda buat dalam kode.

Konverter mengambil 3 tanda utama (atau opsi) yang menyesuaikan konversi untuk model Anda:

  1. Tanda kompatibilitas memungkinkan Anda menentukan apakah konversi harus mengizinkan operator khusus.
  2. Tanda pengoptimalan memungkinkan Anda menentukan jenis pengoptimalan yang akan diterapkan selama konversi. Teknik optimasi yang paling umum digunakan adalah post-training quanitization .
  3. Tanda metadata memungkinkan Anda untuk menambahkan metadata ke model yang dikonversi yang memudahkan pembuatan kode pembungkus khusus platform saat menerapkan model pada perangkat.

Anda dapat mengonversi model Anda menggunakan API Python atau alat baris perintah. Lihat panduan model Konversi TF untuk petunjuk langkah demi langkah dalam menjalankan konverter pada model Anda.

Biasanya Anda akan mengonversi model Anda untuk lingkungan waktu proses TensorFlow Lite standar atau lingkungan waktu proses layanan Google Play untuk TensorFlow Lite (Beta). Beberapa kasus penggunaan lanjutan memerlukan penyesuaian lingkungan waktu proses model, yang memerlukan langkah tambahan dalam proses konversi. Lihat bagian lingkungan runtime lanjutan dari ikhtisar Android untuk panduan lebih lanjut.

Konversi lanjutan

Jika Anda mengalami kesalahan saat menjalankan konverter pada model Anda, kemungkinan besar Anda memiliki masalah kompatibilitas operator. Tidak semua operasi TensorFlow didukung oleh TensorFlow Lite. Anda dapat mengatasi masalah ini dengan memfaktorkan ulang model Anda, atau dengan menggunakan opsi konversi lanjutan yang memungkinkan Anda membuat model format TensorFlow Lite yang dimodifikasi dan lingkungan waktu proses kustom untuk model tersebut.

  • Lihat Ikhtisar kompatibilitas model untuk informasi selengkapnya tentang pertimbangan kompatibilitas model TensorFlow dan TensorFlow Lite.
  • Topik di bawah Ikhtisar kompatibilitas model mencakup teknik lanjutan untuk memfaktorkan ulang model Anda, seperti panduan Pilih operator .
  • Untuk daftar lengkap operasi dan batasan, lihat halaman TensorFlow Lite Ops .

Langkah selanjutnya