עקוב אחר המדריך הזה כדי ליצור אוסף מערכי נתונים חדש (ב-TFDS או במאגר משלך).
סקירה כללית
כדי להוסיף אוסף נתונים חדש my_collection
ל-TFDS, המשתמשים צריכים ליצור תיקיית my_collection
המכילה את הקבצים הבאים:
my_collection/
__init__.py
my_collection.py # Dataset collection definition
my_collection_test.py # (Optional) test
description.md # (Optional) collection description (if not included in my_collection.py)
citations.md # (Optional) collection citations (if not included in my_collection.py)
כמוסכמה, יש להוסיף אוספי נתונים חדשים לתיקיית tensorflow_datasets/dataset_collections/
במאגר TFDS.
כתוב את אוסף הנתונים שלך
כל אוספי הנתונים מיושמים תת-מחלקות של tfds.core.dataset_collection_builder.DatasetCollection
.
הנה דוגמה מינימלית של בונה אוסף נתונים, המוגדר בקובץ my_collection.py
:
import collections
from typing import Mapping
from tensorflow_datasets.core import dataset_collection_builder
from tensorflow_datasets.core import naming
class MyCollection(dataset_collection_builder.DatasetCollection):
"""Dataset collection builder my_dataset_collection."""
@property
def info(self) -> dataset_collection_builder.DatasetCollectionInfo:
return dataset_collection_builder.DatasetCollectionInfo.from_cls(
dataset_collection_class=self.__class__,
description="my_dataset_collection description.",
release_notes={
"1.0.0": "Initial release",
},
)
@property
def datasets(
self,
) -> Mapping[str, Mapping[str, naming.DatasetReference]]:
return collections.OrderedDict({
"1.0.0":
naming.references_for({
"dataset_1": "natural_questions/default:0.0.2",
"dataset_2": "media_sum:1.0.0",
}),
"1.1.0":
naming.references_for({
"dataset_1": "natural_questions/longt5:0.1.0",
"dataset_2": "media_sum:1.0.0",
"dataset_3": "squad:3.0.0"
})
})
הסעיפים הבאים מתארים את 2 השיטות המופשטות להחלפה.
info
: מטא נתונים של אוסף נתונים
שיטת info
מחזירה את dataset_collection_builder.DatasetCollectionInfo
המכיל את המטא נתונים של האוסף.
מידע אוסף הנתונים מכיל ארבעה שדות:
- שם: שם אוסף הנתונים.
- תיאור: תיאור בפורמט סימון של אוסף הנתונים. ישנן שתי דרכים להגדיר תיאור של אוסף מערך נתונים: (1) כמחרוזת (מרובת שורות) ישירות בקובץ
my_collection.py
של האוסף - בדומה לכך שזה כבר נעשה עבור מערכי נתונים של TFDS; (2) בקובץdescription.md
, אותו יש למקם בתיקיית אוסף הנתונים. - release_notes: מיפוי מהגרסה של אוסף הנתונים להערות הגרסה המקבילות.
- ציטוט: ציטוט אופציונלי (רשימה של) ציטוטים של BibTeX עבור אוסף הנתונים. ישנן שתי דרכים להגדיר ציטוט של אוסף מערך נתונים: (1) כמחרוזת (מרובת שורות) ישירות בקובץ
my_collection.py
של האוסף - בדומה לכך שזה כבר נעשה עבור מערכי נתונים של TFDS; (2) בקובץcitations.bib
, אותו יש למקם בתיקיית אוסף הנתונים.
datasets
: הגדר את מערכי הנתונים באוסף
שיטת datasets
מחזירה את מערכי הנתונים של TFDS באוסף.
הוא מוגדר כמילון של גרסאות, המתארות את התפתחות אוסף הנתונים.
עבור כל גרסה, מערכי הנתונים הכלולים של TFDS מאוחסנים כמילון משמות של מערכי נתונים ועד naming.DatasetReference
. לְדוּגמָה:
class MyCollection(dataset_collection_builder.DatasetCollection):
...
@property
def datasets(self):
return {
"1.0.0": {
"yes_no":
naming.DatasetReference(
dataset_name="yes_no", version="1.0.0"),
"sst2":
naming.DatasetReference(
dataset_name="glue", config="sst2", version="2.0.0"),
"assin2":
naming.DatasetReference(
dataset_name="assin2", version="1.0.0"),
},
...
}
השיטה naming.references_for
מספקת דרך קומפקטית יותר לבטא את אותו הדבר כמו לעיל:
class MyCollection(dataset_collection_builder.DatasetCollection):
...
@property
def datasets(self):
return {
"1.0.0":
naming.references_for({
"yes_no": "yes_no:1.0.0",
"sst2": "glue/sst:2.0.0",
"assin2": "assin2:1.0.0",
}),
...
}
בדוק ביחידה את אוסף הנתונים שלך
DatasetCollectionTestBase היא מחלקת בדיקה בסיסית עבור אוספי נתונים. הוא מספק מספר בדיקות פשוטות כדי להבטיח שאוסף הנתונים רשום כהלכה, ומערכי הנתונים שלו קיימים ב-TFDS.
תכונת המחלקה היחידה שיש להגדיר היא DATASET_COLLECTION_CLASS
, אשר מציינת את אובייקט המחלקה של אוסף מערך הנתונים לבדיקה.
בנוסף, משתמשים יכולים להגדיר את תכונות המחלקה הבאות:
-
VERSION
: הגרסה של אוסף הנתונים המשמשת להפעלת הבדיקה (ברירת המחדל היא לגרסה העדכנית ביותר). -
DATASETS_TO_TEST
: רשימה המכילה את מערכי הנתונים לבדיקת קיומם ב-TFDS (ברירת המחדל לכל מערכי הנתונים באוסף). -
CHECK_DATASETS_VERSION
: האם לבדוק את קיומם של מערכי הנתונים המנוסים באוסף הנתונים, או עבור גרסאות ברירת המחדל שלהם (ברירת המחדל ל-true).
הבדיקה התקינה הפשוטה ביותר עבור אוסף מערכי נתונים תהיה:
from tensorflow_datasets.testing.dataset_collection_builder_testing import DatasetCollectionTestBase
from . import my_collection
class TestMyCollection(DatasetCollectionTestBase):
DATASET_COLLECTION_CLASS = my_collection.MyCollection
הפעל את הפקודה הבאה כדי לבדוק את אוסף הנתונים.
python my_dataset_test.py
מָשׁוֹב
אנו מנסים ללא הרף לשפר את זרימת העבודה של יצירת מערך הנתונים, אך נוכל לעשות זאת רק אם אנו מודעים לבעיות. באילו בעיות או שגיאות נתקלת בעת יצירת אוסף הנתונים? האם היה חלק מבלבל, או לא עבד בפעם הראשונה?
אנא שתף את המשוב שלך על GitHub .