तिथि को रक्षित करें! Google I / O 18-20 मई को पंजीकृत करता है
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

विभाजन और टुकड़ा करने की क्रिया

सभी DatasetBuilder एस विभाजन के रूप में परिभाषित विभिन्न डेटा सबसेट को उजागर करते हैं (जैसे: train , test )। जब tfds.load() या tfds.DatasetBuilder.as_dataset() का उपयोग करकेtf.data.Dataset इंस्टेंस का निर्माण किया जा सकता है, तो कोई भी निर्दिष्ट कर सकता है कि कौन सा विभाजन पुनः प्राप्त करने के लिए है। विभाजन (एस) के स्लाइस (एस) के साथ-साथ उन के संयोजन को भी पुनर्प्राप्त करना संभव है।

स्लाइसिंग एपीआई

tfds.load निर्देश tfds.load या tfds.DatasetBuilder.as_dataset में निर्दिष्ट हैं।

निर्देश स्ट्रिंग्स या ReadInstruction s के रूप में प्रदान किए जा सकते हैं। स्ट्रिंग्स सरल मामलों के लिए अधिक कॉम्पैक्ट और पठनीय हैं, जबकि ReadInstruction s अधिक विकल्प प्रदान करता है और चर स्लाइसिंग मापदंडों के साथ उपयोग करना आसान हो सकता है।

उदाहरण

स्ट्रिंग API का उपयोग करने वाले उदाहरण:

04 बी 7 एफ 42060

ReadInstruction API (उपरोक्त के बराबर) का उपयोग करने वाले उदाहरण:

# The full `train` split.
train_ds = tfds.load('mnist', split=tfds.core.ReadInstruction('train'))

# The full `train` split and the full `test` split as two distinct datasets.
train_ds, test_ds = tfds.load('mnist', split=[
    tfds.core.ReadInstruction('train'),
    tfds.core.ReadInstruction('test'),
])

# The full `train` and `test` splits, interleaved together.
ri = tfds.core.ReadInstruction('train') + tfds.core.ReadInstruction('test')
train_test_ds = tfds.load('mnist', split=ri)

# From record 10 (included) to record 20 (excluded) of `train` split.
train_10_20_ds = tfds.load('mnist', split=tfds.core.ReadInstruction(
    'train', from_=10, to=20, unit='abs'))

# The first 10% of train split.
train_10_20_ds = tfds.load('mnist', split=tfds.core.ReadInstruction(
    'train', to=10, unit='%'))

# The first 10% of train + the last 80% of train.
ri = (tfds.core.ReadInstruction('train', to=10, unit='%') +
      tfds.core.ReadInstruction('train', from_=-80, unit='%'))
train_10_80pct_ds = tfds.load('mnist', split=ri)

# 10-fold cross-validation (see also next section on rounding behavior):
# The validation datasets are each going to be 10%:
# [0%:10%], [10%:20%], ..., [90%:100%].
# And the training datasets are each going to be the complementary 90%:
# [10%:100%] (for a corresponding validation set of [0%:10%]),
# [0%:10%] + [20%:100%] (for a validation set of [10%:20%]), ...,
# [0%:90%] (for a validation set of [90%:100%]).
vals_ds = tfds.load('mnist', [
    tfds.core.ReadInstruction('train', from_=k, to=k+10, unit='%')
    for k in range(0, 100, 10)])
trains_ds = tfds.load('mnist', [
    (tfds.core.ReadInstruction('train', to=k, unit='%') +
     tfds.core.ReadInstruction('train', from_=k+10, unit='%'))
    for k in range(0, 100, 10)])

tfds.even_splits

tfds.even_splits समान आकार के गैर-अतिव्यापी उप-विभाजन की एक सूची बनाता है।

assert tfds.even_splits('train', n=3) == [
    'train[0%:33%]', 'train[33%:67%]', 'train[67%:100%]',
]

प्रतिशत टुकड़ा और गोलाई

यदि विभाजन का एक टुकड़ा प्रतिशत ( % ) इकाई का उपयोग करने का अनुरोध किया जाता है, और अनुरोध की गई स्लाइस सीमाएं 100 से समान रूप से विभाजित नहीं होती हैं, तो डिफ़ॉल्ट व्यवहार इसे निकटतम पूर्णांक ( closest ) में गोल सीमाओं तक ले जाता है। इसका मतलब है कि कुछ स्लाइस में दूसरों की तुलना में अधिक उदाहरण हो सकते हैं। उदाहरण के लिए:

# Assuming "train" split contains 101 records.
# 100 records, from 0 to 100.
tfds.load("mnist", split="test[:99%]")
# 2 records, from 49 to 51.
tfds.load("mnist", split="test[49%:50%]")

वैकल्पिक रूप से, उपयोगकर्ता गोलाई pct1_dropremainder उपयोग कर सकता है, इसलिए निर्दिष्ट प्रतिशत सीमाओं को 1% के गुणकों के रूप में माना जाता है। इस विकल्प का उपयोग तब किया जाना चाहिए जब स्थिरता की आवश्यकता हो (जैसे: len(5%) == 5 * len(1%) )। इसका मतलब है कि अगर जानकारी। info.split[split_name].num_examples % 100 != 0 पर अंतिम उदाहरणों को काट दिया जाए।

उदाहरण:

# Records 0 (included) to 99 (excluded).
split = tfds.core.ReadInstruction(
    'test',
    to=99,
    rounding='pct1_dropremainder',
    unit = '%',
)
tfds.load("mnist", split=split)

प्रतिक्रमण

उप-विभाजित एपीआई की गारंटी देता है कि किसी भी दिए गए स्प्लिट स्लाइस (या ReadInstruction ) हमेशा दिए गए डेटासेट पर रिकॉर्ड के समान सेट का उत्पादन करेगा, जब तक कि डेटासेट का प्रमुख संस्करण स्थिर नहीं होता है।

उदाहरण के लिए, tfds.load("mnist:3.0.0", split="train[10:20]") और tfds.load("mnist:3.2.0", split="train[10:20]") हमेशा एक ही तत्व शामिल होंगे - प्लेटफ़ॉर्म, आर्किटेक्चर, आदि की परवाह किए बिना - भले ही कुछ रिकॉर्ड में अलग-अलग मूल्य हो सकते हैं (जैसे: सामान एन्कोडिंग, लेबल, ...)।