Google Cloud Storage (GCS) สามารถใช้กับ tfds ได้ด้วยเหตุผลหลายประการ:
- จัดเก็บข้อมูลที่ประมวลผลไว้ล่วงหน้า
- การเข้าถึงชุดข้อมูลที่มีข้อมูลเก็บไว้ใน GCS
เข้าถึงผ่านที่เก็บข้อมูล TFDS GCS
ชุดข้อมูลบางชุดพร้อมใช้งานโดยตรงในที่เก็บข้อมูล GCS ของเรา gs://tfds-data/datasets/
โดยไม่ต้องมีการตรวจสอบสิทธิ์:
- หาก
tfds.load(..., try_gcs=False)
(ค่าเริ่มต้น) ชุดข้อมูลจะถูกคัดลอกแบบโลคัลใน~/tensorflow_datasets
ระหว่างdownload_and_prepare
- หาก
tfds.load(..., try_gcs=True)
ชุดข้อมูลจะถูกสตรีมโดยตรงจาก GCS (download_and_prepare
จะถูกข้าม)
คุณสามารถตรวจสอบว่าชุดข้อมูลโฮสต์อยู่ในที่เก็บข้อมูลสาธารณะด้วย tfds.is_dataset_on_gcs('mnist')
การรับรองความถูกต้อง
ก่อนเริ่มต้น คุณควรตัดสินใจว่าต้องการตรวจสอบสิทธิ์อย่างไร มีสามตัวเลือก:
- ไม่มีการรับรองความถูกต้อง (หรือการเข้าถึงแบบไม่ระบุชื่อ)
- โดยใช้บัญชี Google ของคุณ
- ใช้บัญชีบริการ (สามารถแชร์กับผู้อื่นในทีมของคุณได้อย่างง่ายดาย)
คุณสามารถดูข้อมูลโดยละเอียดได้ใน เอกสารประกอบของ Google Cloud
คำแนะนำแบบง่าย
หากคุณเรียกใช้จาก colab คุณจะตรวจสอบสิทธิ์กับบัญชีของคุณได้ แต่ทำงาน:
from google.colab import auth
auth.authenticate_user()
หากคุณทำงานบนเครื่องท้องถิ่นของคุณ (หรือใน VM) คุณสามารถตรวจสอบสิทธิ์กับบัญชีของคุณได้โดยการเรียกใช้:
gcloud auth application-default login
หากคุณต้องการเข้าสู่ระบบด้วยบัญชีบริการ ให้ดาวน์โหลดไฟล์คีย์ JSON และตั้งค่า
export GOOGLE_APPLICATION_CREDENTIALS=<JSON_FILE_PATH>
การใช้ Google Cloud Storage เพื่อจัดเก็บข้อมูลที่ประมวลผลล่วงหน้า
โดยปกติเมื่อคุณใช้ชุดข้อมูล TensorFlow ข้อมูลที่ดาวน์โหลดและเตรียมไว้จะถูกแคชไว้ในไดเรกทอรีภายในเครื่อง (ตามค่าเริ่มต้น ~/tensorflow_datasets
)
ในบางสภาพแวดล้อมที่ดิสก์ในเครื่องอาจเป็นชั่วคราว (เซิร์ฟเวอร์คลาวด์ชั่วคราวหรือ โน้ตบุ๊ก Colab ) หรือคุณต้องการให้เครื่องหลายเครื่องเข้าถึงข้อมูลได้ จะมีประโยชน์ในการตั้ง data_dir
เป็นระบบจัดเก็บข้อมูลบนคลาวด์ เช่น Google Cloud Storage (GCS) ถัง.
ยังไง?
สร้างที่เก็บข้อมูล GCS และตรวจสอบว่าคุณ (หรือบัญชีบริการของคุณ) มีสิทธิ์อ่าน/เขียน (ดูคำแนะนำในการให้สิทธิ์ด้านบน)
เมื่อคุณใช้ tfds
คุณสามารถตั้ง data_dir
เป็น "gs://YOUR_BUCKET_NAME"
ds_train, ds_test = tfds.load(name="mnist", split=["train", "test"], data_dir="gs://YOUR_BUCKET_NAME")
ข้อควรระวัง:
- วิธีการนี้ใช้ได้กับชุดข้อมูลที่ใช้
tf.io.gfile
สำหรับการเข้าถึงข้อมูลเท่านั้น นี่เป็นเรื่องจริงสำหรับชุดข้อมูลส่วนใหญ่ แต่ไม่ใช่ทั้งหมด - โปรดทราบว่าการเข้าถึง GCS คือการเข้าถึงเซิร์ฟเวอร์ระยะไกลและสตรีมข้อมูลจากเซิร์ฟเวอร์ดังกล่าว ดังนั้นคุณอาจต้องเสียค่าใช้จ่ายด้านเครือข่าย
การเข้าถึงชุดข้อมูลที่เก็บไว้ใน GCS
หากเจ้าของชุดข้อมูลอนุญาตให้มีการเข้าถึงโดยไม่เปิดเผยตัวตน คุณสามารถเรียกใช้โค้ด tfds.load ได้เลย และมันจะทำงานเหมือนกับการดาวน์โหลดทางอินเทอร์เน็ตทั่วไป
หากชุดข้อมูลต้องมีการตรวจสอบสิทธิ์ โปรดใช้คำแนะนำด้านบนเพื่อตัดสินใจว่าคุณต้องการตัวเลือกใด (บัญชีของตัวเองเทียบกับบัญชีบริการ) และแจ้งชื่อบัญชี (หรือที่เรียกว่าอีเมล) ให้กับเจ้าของชุดข้อมูล หลังจากที่เปิดให้เข้าถึงไดเรกทอรี GCS แล้ว คุณควรเรียกใช้โค้ดดาวน์โหลด tfds ได้