Dokumen ini menjelaskan konvensi URL yang digunakan saat menghosting semua jenis model di tfhub.dev - model TFJS, TF Lite, dan TensorFlow. Ini juga menjelaskan protokol berbasis HTTP(S) yang diterapkan oleh pustaka tensorflow_hub
untuk memuat model TensorFlow dari tfhub.dev dan layanan yang kompatibel ke dalam program TensorFlow.
Fitur utamanya adalah menggunakan URL yang sama dalam kode untuk memuat model dan di browser untuk melihat dokumentasi model.
Konvensi URL umum
tfhub.dev mendukung format URL berikut:
- Penerbit TF Hub mengikuti
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>
- Koleksi TF Hub mengikuti
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/collection/<collection_name>
- Model TF Hub memiliki url berversi
<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name>/<version>
dan url tidak berversi<a href="https://tfhub.dev/">https://tfhub.dev/</a><publisher>/<model_name>
yang menghasilkan model versi terbaru.
Model TF Hub dapat diunduh sebagai aset terkompresi dengan menambahkan parameter URL ke URL model tfhub.dev . Namun, parameter URL yang diperlukan untuk mencapai hal tersebut bergantung pada jenis model:
- Model TensorFlow (format SavedModel dan TF1 Hub): tambahkan
?tf-hub-format=compressed
ke url model TensorFlow. - Model TFJS: tambahkan
?tfjs-format=compressed
ke url model TFJS untuk mengunduh file terkompresi atau/model.json?tfjs-format=file
untuk dibaca dari penyimpanan jarak jauh. - Model TF lite: tambahkan
?lite-format=tflite
ke url model TF Lite.
Misalnya:
Jenis | URL model | Jenis unduhan | Parameter URL | URL unduhan |
TensorFlow (Model Tersimpan, format Hub TF1) | https://tfhub.dev/google/spice/2 | .tar.gz | ?tf-hub-format=terkompresi | https://tfhub.dev/google/spice/2?tf-hub-format=compressed |
TF Ringan | https://tfhub.dev/google/lite-model/spice/1 | .tflite | ?format-lite=tflite | https://tfhub.dev/google/lite-model/spice/1?lite-format=tflite |
TF.js | https://tfhub.dev/google/tfjs-model/spice/2/default/1 | .tar.gz | ?tfjs-format=terkompresi | https://tfhub.dev/google/tfjs-model/spice/2/default/1?tfjs-format=compressed |
Selain itu, beberapa model juga dihosting dalam format yang dapat dibaca langsung dari penyimpanan jarak jauh tanpa harus diunduh. Hal ini sangat berguna jika tidak ada penyimpanan lokal yang tersedia, seperti menjalankan model TF.js di browser atau memuat SavedModel di Colab . Sadarilah bahwa model membaca yang dihosting dari jarak jauh tanpa diunduh secara lokal dapat meningkatkan latensi.
Jenis | URL model | Jenis respons | Parameter URL | URL Permintaan |
TensorFlow (Model Tersimpan, format Hub TF1) | https://tfhub.dev/google/spice/2 | String (Jalur ke folder GCS tempat model yang tidak terkompresi disimpan) | ?tf-hub-format=tidak terkompresi | https://tfhub.dev/google/spice/2?tf-hub-format=tidak terkompresi |
TF.js | https://tfhub.dev/google/tfjs-model/spice/2/default/1 | .json | ?tfjs-format=file | https://tfhub.dev/google/tfjs-model/spice/2/default/1/model.json?tfjs-format=file |
protokol perpustakaan tensorflow_hub
Bagian ini menjelaskan cara kami menghosting model di tfhub.dev untuk digunakan dengan pustaka tensorflow_hub. Jika Anda ingin menghosting repositori model Anda sendiri agar berfungsi dengan pustaka tensorflow_hub, layanan distribusi HTTP Anda harus menyediakan implementasi protokol ini.
Perhatikan bahwa bagian ini tidak membahas hosting model TF Lite dan TFJS karena tidak diunduh melalui pustaka tensorflow_hub
. Untuk informasi lebih lanjut tentang hosting jenis model ini, silakan periksa di atas .
Hosting Terkompresi
Model disimpan di tfhub.dev sebagai file tar.gz terkompresi. Secara default, pustaka tensorflow_hub secara otomatis mengunduh model terkompresi. Mereka juga dapat diunduh secara manual dengan menambahkan ?tf-hub-format=compressed
ke url model, misalnya:
wget https://tfhub.dev/tensorflow/albert_en_xxlarge/1?tf-hub-format=compressed
Akar arsip adalah akar direktori model dan harus berisi SavedModel, seperti dalam contoh ini:
# Create a compressed model from a SavedModel directory.
$ tar -cz -f model.tar.gz --owner=0 --group=0 -C /tmp/export-model/ .
# Inspect files inside a compressed model
$ tar -tf model.tar.gz
./
./variables/
./variables/variables.data-00000-of-00001
./variables/variables.index
./assets/
./saved_model.pb
Tarball untuk digunakan dengan format TF1 Hub lama juga akan berisi file ./tfhub_module.pb
.
Saat salah satu API pemuatan model pustaka tensorflow_hub
dipanggil ( hub.KerasLayer , hub.load , dll), pustaka akan mengunduh model, membuka kompresi model, dan menyimpannya dalam cache secara lokal. Pustaka tensorflow_hub
mengharapkan URL model memiliki versi dan konten model dari versi tertentu tidak dapat diubah, sehingga dapat di-cache tanpa batas waktu. Pelajari lebih lanjut tentang model cache .
Hosting Tidak Terkompresi
Jika variabel lingkungan TFHUB_MODEL_LOAD_FORMAT
atau flag baris perintah --tfhub_model_load_format
disetel ke UNCOMPRESSED
, model dibaca langsung dari penyimpanan jarak jauh (GCS) alih-alih diunduh dan dikompresi secara lokal. Jika perilaku ini diaktifkan, pustaka akan menambahkan ?tf-hub-format=uncompressed
ke URL model. Permintaan tersebut mengembalikan jalur ke folder di GCS yang berisi file model yang tidak dikompresi. Sebagai contoh,
<a href="https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed">https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed</a>
kembali
gs://tfhub-modules/google/spice/2/uncompressed
di isi respons 303. Library kemudian membaca model dari tujuan GCS tersebut.