This page was translated by the Cloud Translation API.
Switch to English

বিভক্ত এবং কাটা

সমস্ত DatasetBuilder বিভাজন (যেমন: train , test ) হিসাবে সংজ্ঞায়িত বিভিন্ন ডেটা DatasetBuilder প্রকাশ করে। tfds.load() বা tfds.DatasetBuilder.as_dataset() ব্যবহার করে একটি tf.data.Dataset উদাহরণ নির্মাণ করার সময়, কেউ পুনরুদ্ধার করতে কোন বিভাজন (গুলি) নির্দিষ্ট করতে পারে। বিভক্ত (গুলি) এর স্লাইস এবং সেগুলির সংমিশ্রণগুলি পুনরুদ্ধার করাও সম্ভব।

স্লাইসিং এপিআই

tfds.load নির্দেশাবলী tfds.load বা tfds.DatasetBuilder.as_dataset সুনির্দিষ্ট করা হয়েছে।

নির্দেশাবলী স্ট্রিং বা ReadInstruction হিসাবে সরবরাহ করা যেতে পারে। স্ট্রিংগুলি সহজ ReadInstruction জন্য আরও কমপ্যাক্ট এবং পঠনযোগ্য, যখন ReadInstruction আরও বিকল্প সরবরাহ করে এবং ভেরিয়েবল স্লাইসিং পরামিতিগুলির সাথে ব্যবহার করা সহজতর হতে পারে।

উদাহরণ

স্ট্রিং এপিআই ব্যবহার করে উদাহরণগুলি:

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

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

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

# From record 10 (included) to record 20 (excluded) of `train` split.
train_10_20_ds = tfds.load('mnist', split='train[10:20]')

# The first 10% of train split.
train_10pct_ds = tfds.load('mnist', split='train[:10%]')

# The first 10% of train + the last 80% of train.
train_10_80pct_ds = tfds.load('mnist', split='train[:10%]+train[-80%:]')

# 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', split=[
    f'train[{k}%:{k+10}%]' for k in range(0, 100, 10)
])
trains_ds = tfds.load('mnist', split=[
    f'train[:{k}%]+train[{k+10}%:]' for k in range(0, 100, 10)
])

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 একই আকারের নন-ওভারল্যাপিং সাব- tfds.even_splits একটি তালিকা তৈরি করে।

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

শতকরা ভাগ কাটা এবং গোলাকার and

শতাংশ ( % ) ইউনিট ব্যবহার করে যদি কোনও বিভাজনের এক টুকরো অনুরোধ করা হয় এবং অনুরোধ করা স্লাইস সীমানা 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 ব্যবহার করতে পারেন, সুতরাং নির্দিষ্ট শতাংশের 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]") প্ল্যাটফর্ম, আর্কিটেকচার ইত্যাদি নির্বিশেষে সর্বদা একই উপাদান থাকবে - যদিও কিছু রেকর্ডের বিভিন্ন মান থাকতে পারে (যেমন: এমেজ এনকোডিং, লেবেল, ...)।