Tài liệu này mô tả các quy ước URL được sử dụng khi lưu trữ tất cả các loại mô hình trên tfhub.dev - các mô hình TFJS, TF Lite và TensorFlow. Nó cũng mô tả giao thức dựa trên HTTP(S) được thư viện tensorflow_hub triển khai để tải các mô hình TensorFlow từ tfhub.dev và các dịch vụ tương thích vào các chương trình TensorFlow.
Tính năng chính của nó là sử dụng cùng một URL trong mã để tải mô hình và trong trình duyệt để xem tài liệu của mô hình.
Các quy ước chung về URL
tfhub.dev hỗ trợ các định dạng URL sau:
- Các nhà xuất bản trên TF Hub theo dõi
https://tfhub.dev/<publisher> - Các bộ sưu tập trên TF Hub được liên kết đến
https://tfhub.dev/<publisher>/collection/<collection_name> - Các mô hình trên TF Hub có URL phiên bản hóa
https://tfhub.dev/<publisher>/<model_name>/<version>và URL không phiên bản hóahttps://tfhub.dev/<publisher>/<model_name>, URL này dẫn đến phiên bản mới nhất của mô hình.
Các mô hình TF Hub có thể được tải xuống dưới dạng tệp nén bằng cách thêm các tham số URL vào URL mô hình tfhub.dev . Tuy nhiên, các tham số URL cần thiết để thực hiện điều đó phụ thuộc vào loại mô hình:
- Các mô hình TensorFlow (cả định dạng SavedModel và TF1 Hub): thêm
?tf-hub-format=compressedvào URL của mô hình TensorFlow. - Đối với mô hình TFJS: thêm
?tfjs-format=compressedvào URL của mô hình TFJS để tải xuống tệp nén hoặc/model.json?tfjs-format=fileđể đọc nếu từ bộ nhớ từ xa. - Các mô hình TF Lite: thêm
?lite-format=tflitevào URL của mô hình TF Lite.
Ví dụ:
| Kiểu | URL mẫu | Tải xuống loại | Tham số URL | URL tải xuống |
| TensorFlow (SavedModel, định dạng TF1 Hub) | https://tfhub.dev/google/spice/2 | .tar.gz | ?tf-hub-format=compressed | https://tfhub.dev/google/spice/2?tf-hub-format=compressed |
| TF Lite | https://tfhub.dev/google/lite-model/spice/1 | .tflite | ?lite-format=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=compressed | https://tfhub.dev/google/tfjs-model/spice/2/default/1?tfjs-format=compressed |
Ngoài ra, một số mô hình cũng được lưu trữ ở định dạng có thể đọc trực tiếp từ bộ nhớ từ xa mà không cần tải xuống. Điều này đặc biệt hữu ích nếu không có bộ nhớ cục bộ, chẳng hạn như chạy mô hình TF.js trong trình duyệt hoặc tải SavedModel trên Colab . Cần lưu ý rằng việc đọc các mô hình được lưu trữ từ xa mà không cần tải xuống cục bộ có thể làm tăng độ trễ.
| Kiểu | URL mẫu | Loại phản hồi | Tham số URL | URL yêu cầu |
| TensorFlow (SavedModel, định dạng TF1 Hub) | https://tfhub.dev/google/spice/2 | Chuỗi (Đường dẫn đến thư mục GCS nơi lưu trữ mô hình đã giải nén) | ?tf-hub-format=uncompressed | https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed |
| 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 |
giao thức thư viện tensorflow_hub
Phần này mô tả cách chúng tôi lưu trữ các mô hình trên tfhub.dev để sử dụng với thư viện tensorflow_hub. Nếu bạn muốn lưu trữ kho mô hình riêng của mình để làm việc với thư viện tensorflow_hub, dịch vụ phân phối HTTP(s) của bạn cần cung cấp một triển khai của giao thức này.
Lưu ý rằng phần này không đề cập đến việc lưu trữ các mô hình TF Lite và TFJS vì chúng không được tải xuống thông qua thư viện tensorflow_hub . Để biết thêm thông tin về việc lưu trữ các loại mô hình này, vui lòng xem phần trên .
Lưu trữ nén
Các mô hình được lưu trữ trên tfhub.dev dưới dạng các tệp nén tar.gz. Theo mặc định, thư viện tensorflow_hub tự động tải xuống mô hình đã nén. Chúng cũng có thể được tải xuống thủ công bằng cách thêm ?tf-hub-format=compressed vào URL của mô hình, ví dụ:
wget https://tfhub.dev/tensorflow/albert_en_xxlarge/1?tf-hub-format=compressed
Thư mục gốc của kho lưu trữ chính là thư mục gốc của mô hình và phải chứa một SavedModel, như trong ví dụ này:
# 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
Các tệp nén Tarball dùng cho định dạng TF1 Hub cũ cũng sẽ chứa tệp ./tfhub_module.pb .
Khi một trong các API tải mô hình của thư viện tensorflow_hub được gọi ( hub.KerasLayer , hub.load , v.v.), thư viện sẽ tải xuống mô hình, giải nén mô hình và lưu vào bộ nhớ cache cục bộ. Thư viện tensorflow_hub yêu cầu URL mô hình phải được đánh số phiên bản và nội dung mô hình của một phiên bản nhất định phải không thay đổi, do đó nó có thể được lưu vào bộ nhớ cache vô thời hạn. Tìm hiểu thêm về việc lưu trữ mô hình vào bộ nhớ cache .

Lưu trữ không nén
Khi biến môi trường TFHUB_MODEL_LOAD_FORMAT hoặc cờ dòng lệnh --tfhub_model_load_format được đặt thành UNCOMPRESSED , mô hình sẽ được đọc trực tiếp từ bộ nhớ từ xa (GCS) thay vì được tải xuống và giải nén cục bộ. Khi hành vi này được bật, thư viện sẽ thêm ?tf-hub-format=uncompressed vào URL của mô hình. Yêu cầu đó trả về đường dẫn đến thư mục trên GCS chứa các tệp mô hình đã được giải nén. Ví dụ:
https://tfhub.dev/google/spice/2?tf-hub-format=uncompressed
trả lại
gs://kaggle-tfhub-models-uncompressed/tfhub-modules/google/spice/2/uncompressed vào phần thân của phản hồi 303. Sau đó, thư viện sẽ đọc mô hình từ đích đến GCS đó.