หน้านี้ได้รับการแปลโดย Cloud Translation API
Switch to English

ชุดข้อมูลเวอร์ชัน

ความหมาย

ทุก DatasetBuilder กำหนดไว้ใน TFDS มาพร้อมกับรุ่นตัวอย่างเช่น:

 class MNIST(tfds.core.GeneratorBasedBuilder):
  VERSION = tfds.core.Version("1.0.0")
 

รุ่นดังต่อไปนี้ ความหมายเวอร์ชัน 2.0.0 : MAJOR.MINOR.PATCH วัตถุประสงค์ของรุ่นนี้คือการสามารถที่จะรับประกันการทำสำเนา: โหลดชุดข้อมูลที่ได้รับในรุ่นที่คงที่อัตราผลตอบแทนข้อมูลเดียวกัน โดยเฉพาะอย่างยิ่ง:

  • หาก PATCH รุ่นจะเพิ่มขึ้นข้อมูลว่าอ่านแล้วโดยลูกค้าจะเหมือนกันแม้ว่าข้อมูลอาจจะแตกต่างกันเนื่องในดิสก์หรือข้อมูลเมตาอาจมีการเปลี่ยนแปลง สำหรับชิ้นใดก็ตามหั่น API ส่งกลับชุดเดียวกันของระเบียน
  • หาก MINOR รุ่นจะเพิ่มขึ้นข้อมูลที่มีอยู่เช่นการอ่านโดยลูกค้าจะเหมือนกัน แต่มีข้อมูลเพิ่มเติม (ให้บริการในแต่ละระเบียน) สำหรับชิ้นใดก็ตามหั่น API ส่งกลับชุดเดียวกันของระเบียน
  • หาก MAJOR รุ่นจะเพิ่มขึ้น, ข้อมูลที่มีอยู่ได้รับการเปลี่ยนแปลงและ / หรือหั่น API ไม่จำเป็นต้องกลับมาชุดเดียวกันของระเบียนสำหรับชิ้นที่กำหนด

เมื่อมีการเปลี่ยนแปลงรหัสจะทำเพื่อห้องสมุด TFDS และว่าการเปลี่ยนแปลงรหัสผลกระทบทางชุดข้อมูลที่จะถูกต่อเนื่องและ / หรืออ่านโดยลูกค้าแล้วรุ่นสร้างสอดคล้องกันจะเพิ่มขึ้นตามแนวทางข้างต้น

หมายเหตุว่าข้างต้นความหมายคือความพยายามที่ดีที่สุดและอาจจะมีข้อบกพร่องยกเลิกการสังเกตผลกระทบต่อชุดในขณะที่รุ่นที่ไม่ได้เพิ่มขึ้น ข้อบกพร่องดังกล่าวในที่สุดได้รับการแก้ไข แต่ถ้าคุณหนักพึ่งพาเวอร์ชันที่เราแนะนำให้คุณใช้ TFDS จากรุ่นที่วางจำหน่าย (เมื่อเทียบกับ HEAD )

นอกจากนี้ทราบว่าชุดข้อมูลบางส่วนมีอีกโครงการที่เป็นอิสระเวอร์ชันจากรุ่น TFDS ยกตัวอย่างเช่นการเปิดภาพชุดข้อมูลที่มีหลายรุ่นและใน TFDS, ผู้สร้างที่สอดคล้องกันเป็น open_images_v4 , open_images_v5 ...

รุ่นที่รองรับ

DatasetBuilder สามารถรองรับหลายรุ่นซึ่งสามารถเป็นได้ทั้งสูงหรือต่ำกว่ารุ่นมาตรฐาน ตัวอย่างเช่น:

 class Imagenet2012(tfds.core.GeneratorBasedBuilder):
  VERSION = tfds.core.Version('2.0.1', 'Encoding fix. No changes from user POV')
  SUPPORTED_VERSIONS = [
      tfds.core.Version('3.0.0', 'S3: tensorflow.org/datasets/splits'),
      tfds.core.Version('1.0.0'),
      tfds.core.Version('0.0.9', tfds_version_to_prepare="v1.0.0"),
  ]
 

ทางเลือกที่จะยังคงสนับสนุนรุ่นเก่าจะทำบนพื้นฐานกรณีโดยกรณีส่วนใหญ่ขึ้นอยู่กับความนิยมของชุดข้อมูลและรุ่น ในที่สุดเรามีจุดมุ่งหมายเพียงสนับสนุนจำนวน จำกัด รุ่นต่อชุดนึกคิดหนึ่ง ในตัวอย่างข้างต้นเราจะเห็นว่ารุ่น 2.0.0 ไม่สนับสนุนอีกต่อไปเป็นเหมือนกับ 2.0.1 จากมุมมองของผู้อ่าน

รุ่นที่รองรับกับจำนวนสูงกว่าจำนวนรุ่นมาตรฐานจะถือว่าทดลองและอาจจะเสีย แต่พวกเขาจะได้รับการทำให้เป็นที่ยอมรับ

รุ่นสามารถระบุ tfds_version_to_prepare ซึ่งหมายความว่ารุ่นชุดนี้สามารถใช้กับรุ่นปัจจุบันของรหัส TFDS ถ้ามันได้ถูกจัดทำขึ้นโดยรุ่นเก่าของรหัส แต่ไม่สามารถจัดเตรียม ค่าของ tfds_version_to_prepare ระบุรุ่นที่ทราบล่าสุดของ TFDS ซึ่งสามารถใช้ในการดาวน์โหลดและเตรียมความพร้อมชุดข้อมูลที่รุ่นนี้

โหลดรุ่นที่เฉพาะเจาะจง

เมื่อโหลดชุดข้อมูลหรือ DatasetBuilder คุณสามารถระบุรุ่นที่จะใช้ ตัวอย่างเช่น:

 tfds.load('imagenet2012:2.0.1')
tfds.builder('imagenet2012:2.0.1')

tfds.load('imagenet2012:2.0.0')  # Error: unsupported version.

# Resolves to 3.0.0 for now, but would resolve to 3.1.1 if when added.
tfds.load('imagenet2012:3.*.*')
 

ถ้าใช้ TFDS สำหรับสิ่งพิมพ์ที่เราแนะนำให้คุณ:

  • แก้ไข MAJOR ส่วนประกอบของรุ่นเท่านั้น
  • โฆษณารุ่นของชุดข้อมูลที่ถูกนำมาใช้ในผลลัพธ์ของคุณ

การทำเช่นนี้ควรจะทำให้มันง่ายขึ้นสำหรับตัวเองในอนาคตของคุณผู้อ่านและแสดงความคิดเห็นในการทำซ้ำผลของคุณ

การทดลอง

จะค่อยๆแผ่ออกการเปลี่ยนแปลงใน TFDS ซึ่งมีผลกระทบต่อผู้สร้างชุดข้อมูลจำนวนมากเรานำความคิดของการทดลอง ตอนแรกที่แนะนำ, การทดสอบการยกเลิกโดยปริยาย แต่รุ่นชุดข้อมูลที่เฉพาะเจาะจงสามารถตัดสินใจที่จะเปิดใช้งานได้ นี้มักจะทำในรุ่น "อนาคต" (ไม่ได้เป็นที่ยอมรับยัง) ในตอนแรก ตัวอย่างเช่น:

 class MNIST(tfds.core.GeneratorBasedBuilder):
  VERSION = tfds.core.Version("1.0.0")
  SUPPORTED_VERSIONS = [
      tfds.core.Version("2.0.0", "EXP1: Opt-in for experiment 1",
                        experiments={tfds.core.Experiment.EXP1: True}),
  ]
 

เมื่อการทดลองได้รับการยืนยันในการทำงานตามที่คาดไว้ก็จะมีการขยายไปยังทุกหรือชุดข้อมูลส่วนใหญ่ที่จุดที่จะสามารถเปิดใช้งานโดยค่าเริ่มต้นและคำนิยามดังกล่าวข้างต้นแล้วจะมีลักษณะ:

 class MNIST(tfds.core.GeneratorBasedBuilder):
  VERSION = tfds.core.Version("1.0.0",
                              experiments={tfds.core.Experiment.EXP1: False})
  SUPPORTED_VERSIONS = [
      tfds.core.Version("2.0.0", "EXP1: Opt-in for experiment 1"),
  ]
 

เมื่อทดลองใช้ในชุดข้อมูลทุกรุ่น (ไม่มีรุ่นชุดซ้ายระบุ {experiment: False} ) การทดลองสามารถลบได้

การทดสอบและคำอธิบายของพวกเขาถูกกำหนดไว้ใน core/utils/version.py

BUILDER_CONFIGS และรุ่น

ชุดข้อมูลบางส่วนกำหนดหลาย BUILDER_CONFIGS เมื่อเป็นกรณีที่ version และ supported_versions กำหนดไว้ในการตั้งค่าวัตถุตัวเอง อื่น ๆ กว่าที่ความหมายและการใช้งานเหมือนกัน ตัวอย่างเช่น:

 class OpenImagesV4(tfds.core.GeneratorBasedBuilder):

  BUILDER_CONFIGS = [
      OpenImagesV4Config(
          name='original',
          version=tfds.core.Version('0.2.0'),
          supported_versions=[
            tfds.core.Version('1.0.0', "Major change in data"),
          ],
          description='Images at their original resolution and quality.'),
      ...
  ]

tfds.load('open_images_v4/original:1.*.*')