Ringkasan
Pustaka tensorflow_hub
saat ini mendukung dua mode untuk mengunduh model. Secara default, model diunduh sebagai arsip terkompresi dan disimpan dalam cache pada disk. Kedua, model dapat langsung dibaca dari penyimpanan jarak jauh ke TensorFlow. Apa pun pilihannya, panggilan ke fungsi tensorflow_hub
dalam kode Python sebenarnya dapat dan harus terus menggunakan URL model tfhub.dev kanonik, yang portabel di seluruh sistem dan dapat dinavigasi untuk dokumentasi. Dalam kasus yang jarang terjadi ketika kode pengguna memerlukan lokasi sistem file sebenarnya (setelah mengunduh dan mendekompresi, atau setelah menyelesaikan pegangan model ke jalur sistem file), lokasi tersebut dapat diperoleh melalui fungsi hub.resolve(handle)
.
Caching unduhan terkompresi
Pustaka tensorflow_hub
secara default menyimpan model dalam cache pada sistem file ketika telah diunduh dari tfhub.dev (atau situs hosting lainnya) dan didekompresi. Mode ini direkomendasikan untuk sebagian besar lingkungan, kecuali jika ruang disk terbatas tetapi bandwidth dan latensi jaringan luar biasa.
Lokasi pengunduhan defaultnya adalah direktori sementara lokal tetapi dapat disesuaikan dengan mengatur variabel lingkungan TFHUB_CACHE_DIR
(disarankan) atau dengan meneruskan tanda baris perintah --tfhub_cache_dir
. Lokasi cache default /tmp/tfhub_modules
(atau apa pun os.path.join(tempfile.gettempdir(), "tfhub_modules")
yang dievaluasi) seharusnya berfungsi dalam banyak kasus.
Pengguna yang lebih memilih cache persisten saat reboot sistem dapat mengatur TFHUB_CACHE_DIR
ke lokasi di direktori home mereka. Misalnya, pengguna bash shell di sistem Linux dapat menambahkan baris seperti berikut ke ~/.bashrc
export TFHUB_CACHE_DIR=$HOME/.cache/tfhub_modules
...restart shell, dan lokasi ini akan digunakan. Saat menggunakan lokasi tetap, ketahuilah bahwa tidak ada pembersihan otomatis.
Membaca dari penyimpanan jarak jauh
Pengguna dapat menginstruksikan pustaka tensorflow_hub
untuk langsung membaca model dari penyimpanan jarak jauh (GCS) alih-alih mengunduh model secara lokal dengan
os.environ["TFHUB_MODEL_LOAD_FORMAT"] = "UNCOMPRESSED"
atau dengan menyetel tanda baris perintah --tfhub_model_load_format
ke UNCOMPRESSED
. Dengan cara ini, tidak diperlukan direktori caching, yang sangat membantu dalam lingkungan yang menyediakan sedikit ruang disk tetapi koneksi internet cepat.
Berjalan di TPU di notebook Colab
Di colab.research.google.com , pengunduhan model terkompresi akan bertentangan dengan runtime TPU karena beban kerja komputasi didelegasikan ke mesin lain yang tidak memiliki akses ke lokasi cache secara default. Ada dua solusi untuk situasi ini:
1) Gunakan bucket GCS yang dapat diakses oleh pekerja TPU
Solusi termudah adalah dengan menginstruksikan pustaka tensorflow_hub
untuk membaca model dari bucket GCS TF Hub seperti yang dijelaskan di atas. Pengguna yang memiliki bucket GCS sendiri dapat menentukan direktori di bucket mereka sebagai lokasi cache dengan kode serupa
import os
os.environ["TFHUB_CACHE_DIR"] = "gs://my-bucket/tfhub-modules-cache"
...sebelum memanggil perpustakaan tensorflow_hub
.
2) Alihkan semua pembacaan melalui host Colab
Solusi lainnya adalah mengalihkan semua pembacaan (bahkan variabel besar) melalui host Colab:
load_options =
tf.saved_model.LoadOptions(experimental_io_device='/job:localhost')
reloaded_model = hub.load("https://tfhub.dev/...", options=load_options)
Catatan: Lihat informasi lebih lanjut mengenai pegangan yang valid di sini .