Bạn có thể sử dụng Google Cloud Storage (GCS) với tfds vì nhiều lý do:
- Lưu trữ dữ liệu đã được xử lý trước
- Truy cập bộ dữ liệu có dữ liệu được lưu trữ trên GCS
Truy cập thông qua nhóm TFDS GCS
Một số tập dữ liệu có sẵn trực tiếp trong nhóm GCS của chúng tôi gs://tfds-data/datasets/
mà không cần bất kỳ xác thực nào:
- Nếu
tfds.load(..., try_gcs=False)
(mặc định), tập dữ liệu sẽ được sao chép cục bộ trong~/tensorflow_datasets
trongdownload_and_prepare
. - Nếu
tfds.load(..., try_gcs=True)
, tập dữ liệu sẽ được truyền trực tiếp từ GCS (download_and_prepare
sẽ bị bỏ qua).
Bạn có thể kiểm tra xem tập dữ liệu có được lưu trữ trên nhóm công khai hay không bằng tfds.is_dataset_on_gcs('mnist')
.
Xác thực
Trước khi bắt đầu, bạn nên quyết định cách bạn muốn xác thực. Có ba lựa chọn:
- không có xác thực (còn gọi là truy cập ẩn danh)
- sử dụng tài khoản Google của bạn
- sử dụng tài khoản dịch vụ (có thể dễ dàng chia sẻ với những người khác trong nhóm của bạn)
Bạn có thể tìm thấy thông tin chi tiết trong tài liệu Google Cloud
Hướng dẫn đơn giản hóa
Nếu chạy từ colab, bạn có thể xác thực bằng tài khoản của mình nhưng đang chạy:
from google.colab import auth
auth.authenticate_user()
Nếu bạn chạy trên máy cục bộ (hoặc trong VM), bạn có thể xác thực bằng tài khoản của mình bằng cách chạy:
gcloud auth application-default login
Nếu bạn muốn đăng nhập bằng tài khoản dịch vụ, hãy tải xuống khóa tệp JSON và đặt
export GOOGLE_APPLICATION_CREDENTIALS=<JSON_FILE_PATH>
Sử dụng Google Cloud Storage để lưu trữ dữ liệu đã xử lý trước
Thông thường khi bạn sử dụng Bộ dữ liệu TensorFlow, dữ liệu được tải xuống và chuẩn bị sẽ được lưu vào bộ đệm trong một thư mục cục bộ (theo mặc định ~/tensorflow_datasets
).
Trong một số môi trường mà ổ đĩa cục bộ có thể là tạm thời (máy chủ đám mây tạm thời hoặc sổ ghi chép Colab ) hoặc bạn cần nhiều máy có thể truy cập dữ liệu, thì việc đặt data_dir
thành hệ thống lưu trữ đám mây, chẳng hạn như Google Cloud Storage (GCS) sẽ rất hữu ích xô.
Làm sao?
Tạo nhóm GCS và đảm bảo bạn (hoặc tài khoản dịch vụ của bạn) có quyền đọc/ghi trên đó (xem hướng dẫn ủy quyền ở trên)
Khi bạn sử dụng tfds
, bạn có thể đặt data_dir
thành "gs://YOUR_BUCKET_NAME"
ds_train, ds_test = tfds.load(name="mnist", split=["train", "test"], data_dir="gs://YOUR_BUCKET_NAME")
Hãy cẩn thận:
- Cách tiếp cận này hiệu quả với các tập dữ liệu chỉ sử dụng
tf.io.gfile
để truy cập dữ liệu. Điều này đúng với hầu hết các tập dữ liệu, nhưng không phải tất cả. - Hãy nhớ rằng truy cập GCS là truy cập vào máy chủ từ xa và truyền dữ liệu từ máy chủ đó, do đó bạn có thể phải chịu phí mạng.
Truy cập bộ dữ liệu được lưu trữ trên GCS
Nếu chủ sở hữu tập dữ liệu cho phép truy cập ẩn danh, bạn có thể tiếp tục và chạy mã tfds.load - và nó sẽ hoạt động giống như tải xuống internet thông thường.
Nếu tập dữ liệu yêu cầu xác thực, vui lòng sử dụng hướng dẫn ở trên để quyết định xem bạn muốn tùy chọn nào (tài khoản riêng và tài khoản dịch vụ) và liên lạc tên tài khoản (còn gọi là email) với chủ sở hữu tập dữ liệu. Sau khi họ cho phép bạn truy cập vào thư mục GCS, bạn sẽ có thể chạy mã tải xuống tfds.