Unduhan model cache dari TF Hub

Ringkasan

Pustaka tensorflow_hub saat ini mendukung dua mode untuk mengunduh model. Secara default, model diunduh sebagai arsip terkompresi dan di-cache pada disk. Kedua, model dapat langsung dibaca dari penyimpanan jarak jauh ke TensorFlow. Either way, panggilan ke fungsi tensorflow_hub dalam kode Python yang sebenarnya dapat dan harus terus menggunakan kanonik l10n- tfhub.dev l10n URL model, yang portabel di seluruh sistem dan dinavigasi untuk dokumentasi. Dalam kasus yang jarang terjadi bahwa kode pengguna memerlukan lokasi sistem file yang sebenarnya (setelah mengunduh dan mendekompresi, atau setelah menyelesaikan pegangan model ke dalam jalur sistem file), itu dapat diperoleh dengan fungsi hub.resolve(handle) .

Caching unduhan terkompresi

Pustaka tensorflow_hub secara default menyimpan model di sistem file saat model tersebut diunduh dari l10n- tfhub.dev l10n (atau situs hosting lainnya ) dan didekompresi. Mode ini direkomendasikan untuk sebagian besar lingkungan, kecuali jika ruang disk terbatas tetapi bandwidth jaringan dan latensi luar biasa.

Lokasi unduhan default ke direktori sementara lokal tetapi dapat disesuaikan dengan mengatur variabel lingkungan TFHUB_CACHE_DIR (disarankan) atau dengan meneruskan flag baris perintah --tfhub_cache_dir . Lokasi cache default /tmp/tfhub_modules (atau apa pun os.path.join(tempfile.gettempdir(), "tfhub_modules") dievaluasi untuk) seharusnya berfungsi dalam banyak kasus.

Pengguna yang lebih memilih caching persisten di seluruh sistem reboot dapat mengatur TFHUB_CACHE_DIR ke lokasi di direktori home mereka. Misalnya, pengguna bash shell pada sistem Linux dapat menambahkan baris seperti berikut ke ~/.bashrc

export TFHUB_CACHE_DIR=$HOME/.cache/tfhub_modules

...restart shell, dan kemudian lokasi ini akan digunakan. Saat menggunakan lokasi persisten, perhatikan 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 flag baris perintah --tfhub_model_load_format ke UNCOMPRESSED . Dengan cara ini, direktori caching tidak diperlukan, yang sangat membantu di lingkungan yang menyediakan sedikit ruang disk tetapi koneksi internet cepat.

Berjalan di TPU di notebook Colab

Di colab.research.google.com , mengunduh model terkompresi akan bertentangan dengan waktu proses TPU karena beban kerja komputasi didelegasikan ke komputer lain yang tidak memiliki akses ke lokasi cache secara default. Ada dua solusi untuk situasi ini:

1) Gunakan ember GCS yang dapat diakses pekerja TPU

Solusi termudah adalah dengan menginstruksikan library tensorflow_hub untuk membaca model dari bucket GCS TF Hub seperti yang dijelaskan di atas. Pengguna dengan bucket GCS mereka sendiri dapat menentukan direktori di bucket mereka sebagai lokasi cache dengan kode seperti

import os
os.environ["TFHUB_CACHE_DIR"] = "gs://my-bucket/tfhub-modules-cache"

...sebelum memanggil perpustakaan tensorflow_hub .

2) Arahkan ulang semua pembacaan melalui host Colab

Solusi lain adalah mengalihkan semua pembacaan (bahkan untuk 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)