Dari apa yang telah saya kumpulkan sejauh ini, ada beberapa cara berbeda untuk membuang grafik TensorFlow ke dalam file dan kemudian memuatnya ke program lain, tetapi saya belum dapat menemukan contoh / informasi yang jelas tentang cara kerjanya. Yang sudah saya ketahui adalah ini:
- Simpan variabel model ke dalam file checkpoint (.ckpt) menggunakan a
tf.train.Saver()
dan pulihkan nanti ( sumber ) - Simpan model ke dalam file .pb dan muat kembali menggunakan
tf.train.write_graph()
dantf.import_graph_def()
( sumber ) - Memuat model dari file .pb, melatihnya kembali, dan membuangnya ke file .pb baru menggunakan Bazel ( sumber )
- Bekukan grafik untuk menyimpan grafik dan bobot ( sumber )
- Gunakan
as_graph_def()
untuk menyimpan model, dan untuk bobot / variabel, petakan mereka menjadi konstanta ( sumber )
Namun, saya belum dapat menjawab beberapa pertanyaan tentang metode berbeda ini:
- Mengenai file checkpoint, apakah mereka hanya menyimpan bobot model yang terlatih? Bisakah file checkpoint dimuat ke program baru, dan digunakan untuk menjalankan model, atau apakah mereka hanya berfungsi sebagai cara untuk menyimpan bobot dalam model pada waktu / tahap tertentu?
- Mengenai
tf.train.write_graph()
, apakah bobot / variabel juga disimpan? - Terkait Bazel, dapatkah itu hanya menyimpan ke / memuat dari file .pb untuk pelatihan ulang? Apakah ada perintah Bazel sederhana hanya untuk membuang grafik ke dalam .pb?
- Mengenai pembekuan, dapatkah grafik beku dimuat dengan menggunakan
tf.import_graph_def()
? - Demo Android untuk TensorFlow dimuat dalam model Inception Google dari file .pb. Jika saya ingin mengganti file .pb saya sendiri, bagaimana cara melakukannya? Apakah saya perlu mengubah kode / metode asli?
- Secara umum, apa sebenarnya perbedaan antara semua metode ini? Atau secara lebih luas, apa perbedaan antara
as_graph_def()
/.ckpt/.pb?
Singkatnya, yang saya cari adalah metode untuk menyimpan grafik (seperti dalam, berbagai operasi dan semacamnya) dan bobot / variabelnya ke dalam file, yang kemudian dapat digunakan untuk memuat grafik dan bobot ke program lain , untuk digunakan (tidak harus melanjutkan / pelatihan ulang).
Dokumentasi tentang topik ini tidak terlalu mudah, jadi jawaban / informasi apa pun akan sangat dihargai.