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

টেনসরফ্লো ডেটাসেটস

টিএনডিডিএস টেনসরফ্লো, জ্যাক্স এবং অন্যান্য মেশিন লার্নিং ফ্রেমওয়ার্কগুলির সাথে ব্যবহারের জন্য ব্যবহারের জন্য ব্যবহারযোগ্য ডেটাসেটের একটি সংগ্রহ সরবরাহ করে।

এটি tf.data.Dataset ডেটা ডাউনলোড এবং প্রস্তুত এবং একটি tf.data.Dataset (বা np.array ) তৈরি পরিচালনা করে।

টেনসরফ্লো.আর.জে দেখুন গুগল কোলাবে চালান গিটহাবের উত্স দেখুন

স্থাপন

টিএফডিএস দুটি প্যাকেজে বিদ্যমান:

  • pip install tensorflow-datasets : স্থিতিশীল সংস্করণ, প্রতি কয়েক মাসে প্রকাশিত হয়।
  • pip install tfds-nightly : প্রতিদিন প্রকাশিত হয়, এতে ডেটাসেটের শেষ সংস্করণ রয়েছে।

এই কোলাব tfds-nightly ব্যবহার করে:

pip install -q tfds-nightly tensorflow matplotlib
WARNING: You are using pip version 20.2.2; however, version 20.2.3 is available.
You should consider upgrading via the '/tmpfs/src/tf_docs_env/bin/python -m pip install --upgrade pip' command.

import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf

import tensorflow_datasets as tfds

উপলব্ধ ডেটাসেটগুলি সন্ধান করুন

সমস্ত ডেটাসেট নির্মাতারা tfds.core.DatasetBuilder এর সাবক্লাস। উপলব্ধ বিল্ডারদের তালিকা পেতে, tfds.list_builders() ব্যবহার করুন বা আমাদের ক্যাটালগটি দেখুন

tfds.list_builders()
['abstract_reasoning',
 'aeslc',
 'aflw2k3d',
 'ag_news_subset',
 'ai2_arc',
 'ai2_arc_with_ir',
 'amazon_us_reviews',
 'anli',
 'arc',
 'bair_robot_pushing_small',
 'bccd',
 'beans',
 'big_patent',
 'bigearthnet',
 'billsum',
 'binarized_mnist',
 'binary_alpha_digits',
 'blimp',
 'bool_q',
 'c4',
 'caltech101',
 'caltech_birds2010',
 'caltech_birds2011',
 'cars196',
 'cassava',
 'cats_vs_dogs',
 'celeb_a',
 'celeb_a_hq',
 'cfq',
 'chexpert',
 'cifar10',
 'cifar100',
 'cifar10_1',
 'cifar10_corrupted',
 'citrus_leaves',
 'cityscapes',
 'civil_comments',
 'clevr',
 'clic',
 'clinc_oos',
 'cmaterdb',
 'cnn_dailymail',
 'coco',
 'coco_captions',
 'coil100',
 'colorectal_histology',
 'colorectal_histology_large',
 'common_voice',
 'coqa',
 'cos_e',
 'cosmos_qa',
 'covid19sum',
 'crema_d',
 'curated_breast_imaging_ddsm',
 'cycle_gan',
 'deep_weeds',
 'definite_pronoun_resolution',
 'dementiabank',
 'diabetic_retinopathy_detection',
 'div2k',
 'dmlab',
 'downsampled_imagenet',
 'dsprites',
 'dtd',
 'duke_ultrasound',
 'emnist',
 'eraser_multi_rc',
 'esnli',
 'eurosat',
 'fashion_mnist',
 'flic',
 'flores',
 'food101',
 'forest_fires',
 'fuss',
 'gap',
 'geirhos_conflict_stimuli',
 'genomics_ood',
 'german_credit_numeric',
 'gigaword',
 'glue',
 'goemotions',
 'gpt3',
 'groove',
 'gtzan',
 'gtzan_music_speech',
 'higgs',
 'horses_or_humans',
 'i_naturalist2017',
 'imagenet2012',
 'imagenet2012_corrupted',
 'imagenet2012_real',
 'imagenet2012_subset',
 'imagenet_a',
 'imagenet_r',
 'imagenet_resized',
 'imagenet_v2',
 'imagenette',
 'imagewang',
 'imdb_reviews',
 'irc_disentanglement',
 'iris',
 'kitti',
 'kmnist',
 'lfw',
 'librispeech',
 'librispeech_lm',
 'libritts',
 'ljspeech',
 'lm1b',
 'lost_and_found',
 'lsun',
 'malaria',
 'math_dataset',
 'mctaco',
 'mnist',
 'mnist_corrupted',
 'movie_lens',
 'movie_rationales',
 'movielens',
 'moving_mnist',
 'multi_news',
 'multi_nli',
 'multi_nli_mismatch',
 'natural_questions',
 'newsroom',
 'nsynth',
 'nyu_depth_v2',
 'omniglot',
 'open_images_challenge2019_detection',
 'open_images_v4',
 'openbookqa',
 'opinion_abstracts',
 'opinosis',
 'opus',
 'oxford_flowers102',
 'oxford_iiit_pet',
 'para_crawl',
 'patch_camelyon',
 'paws_wiki',
 'paws_x_wiki',
 'pet_finder',
 'pg19',
 'places365_small',
 'plant_leaves',
 'plant_village',
 'plantae_k',
 'qa4mre',
 'qasc',
 'quickdraw_bitmap',
 'radon',
 'reddit',
 'reddit_disentanglement',
 'reddit_tifu',
 'resisc45',
 'robonet',
 'rock_paper_scissors',
 'rock_you',
 'salient_span_wikipedia',
 'samsum',
 'savee',
 'scan',
 'scene_parse150',
 'scicite',
 'scientific_papers',
 'sentiment140',
 'shapes3d',
 'smallnorb',
 'snli',
 'so2sat',
 'speech_commands',
 'spoken_digit',
 'squad',
 'stanford_dogs',
 'stanford_online_products',
 'starcraft_video',
 'stl10',
 'sun397',
 'super_glue',
 'svhn_cropped',
 'ted_hrlr_translate',
 'ted_multi_translate',
 'tedlium',
 'tf_flowers',
 'the300w_lp',
 'tiny_shakespeare',
 'titanic',
 'trec',
 'trivia_qa',
 'tydi_qa',
 'uc_merced',
 'ucf101',
 'vctk',
 'vgg_face2',
 'visual_domain_decathlon',
 'voc',
 'voxceleb',
 'voxforge',
 'waymo_open_dataset',
 'web_questions',
 'wider_face',
 'wiki40b',
 'wikihow',
 'wikipedia',
 'wikipedia_toxicity_subtypes',
 'wine_quality',
 'winogrande',
 'wmt14_translate',
 'wmt15_translate',
 'wmt16_translate',
 'wmt17_translate',
 'wmt18_translate',
 'wmt19_translate',
 'wmt_t2t_translate',
 'wmt_translate',
 'wordnet',
 'xnli',
 'xquad',
 'xsum',
 'yelp_polarity_reviews',
 'yes_no']

একটি ডেটাসেট লোড করুন

একটি ডেটাসেট লোড করার সবচেয়ে সহজ উপায় হল tfds.load । এটি হবে:

  1. ডেটা ডাউনলোড করুন এবং tfrecord ফাইল হিসাবে এটি সংরক্ষণ করুন।
  2. লোড tfrecord এবং তৈরি tf.data.Dataset
ds = tfds.load('mnist', split='train', shuffle_files=True)
assert isinstance(ds, tf.data.Dataset)
print(ds)
WARNING:absl:Dataset mnist is hosted on GCS. It will automatically be downloaded to your
local data directory. If you'd instead prefer to read directly from our public
GCS bucket (recommended if you're running on GCP), you can instead pass
`try_gcs=True` to `tfds.load` or set `data_dir=gs://tfds-data/datasets`.


Downloading and preparing dataset mnist/3.0.1 (download: 11.06 MiB, generated: 21.00 MiB, total: 32.06 MiB) to /home/kbuilder/tensorflow_datasets/mnist/3.0.1...
Dataset mnist downloaded and prepared to /home/kbuilder/tensorflow_datasets/mnist/3.0.1. Subsequent calls will reuse this data.
<_OptionsDataset shapes: {image: (28, 28, 1), label: ()}, types: {image: tf.uint8, label: tf.int64}>

কিছু সাধারণ যুক্তি:

  • split= : পড়ার জন্য কোন বিভাজন (যেমন 'train' , ['train', 'test'] , 'train[80%:]' , ...)। আমাদের বিভক্ত এপিআই গাইড দেখুন
  • shuffle_files= : প্রতিটি যুগের মধ্যে ফাইলগুলি শাফল করা হবে কিনা তা নিয়ন্ত্রণ করুন (টিএফডিএস একাধিক ছোট ফাইলগুলিতে বড় ডেটাসেট সংরক্ষণ করে)।
  • data_dir= : যেখানে ডেটাসেটটি সেভ করা হয়েছে (ডিফল্ট ~/tensorflow_datasets/ )
  • with_info=True : ডেটাসেট মেটাডেটা যুক্ত tfds.core.DatasetInfo
  • download=False : ডাউনলোড অক্ষম করুন

tfds.load কাছাকাছি একটি পাতলা মোড়কের হয় tfds.core.DatasetBuilder । আপনি tfds.core.DatasetBuilder API ব্যবহার করে একই আউটপুট পেতে পারেন:

builder = tfds.builder('mnist')
# 1. Create the tfrecord files (no-op if already exists)
builder.download_and_prepare()
# 2. Load the `tf.data.Dataset`
ds = builder.as_dataset(split='train', shuffle_files=True)
print(ds)
<_OptionsDataset shapes: {image: (28, 28, 1), label: ()}, types: {image: tf.uint8, label: tf.int64}>

একটি ডেটাসেটের উপর দিয়ে আইট্রেট করুন

ডিক হিসাবে

ডিফল্টরূপে, tf.data.Dataset অবজেক্টে tf.Tensor s এর একটি dict থাকে:

ds = tfds.load('mnist', split='train')
ds = ds.take(1)  # Only take a single example

for example in ds:  # example is `{'image': tf.Tensor, 'label': tf.Tensor}`
  print(list(example.keys()))
  image = example["image"]
  label = example["label"]
  print(image.shape, label)
['image', 'label']
(28, 28, 1) tf.Tensor(4, shape=(), dtype=int64)

টিপল হিসাবে ( as_supervised=True )

as_supervised=True ব্যবহার করে আপনি তদারকি করা ডেটাসেটের পরিবর্তে একটি টিপল (features, label) পেতে পারেন।

ds = tfds.load('mnist', split='train', as_supervised=True)
ds = ds.take(1)

for image, label in ds:  # example is (image, label)
  print(image.shape, label)
(28, 28, 1) tf.Tensor(4, shape=(), dtype=int64)

অসাড় হিসাবে ( tfds.as_numpy )

রূপান্তর করতে tfds.as_numpy ব্যবহার করুন:

ds = tfds.load('mnist', split='train', as_supervised=True)
ds = ds.take(1)

for image, label in tfds.as_numpy(ds):
  print(type(image), type(label), label)
<class 'numpy.ndarray'> <class 'numpy.int64'> 4

ব্যাচযুক্ত tf.Tensor হিসাবে ( batch_size=-1 )

batch_size=-1 ব্যবহার করে আপনি একক ব্যাচে পুরো ডেটাসেটটি লোড করতে পারেন।

tfds.load tf.Tensor ( np.array সহ tfds.as_numpy ) এর একটি dict ( as_supervised=True সহ tuple ) প্রদান tf.Tensor

আপনার ডেটাसेट মেমরির সাথে ফিট হতে পারে এবং সমস্ত উদাহরণের একই আকার রয়েছে সে বিষয়ে সতর্ক হন।

image, label = tfds.as_numpy(tfds.load(
    'mnist',
    split='test', 
    batch_size=-1, 
    as_supervised=True,
))

print(type(image), image.shape)
<class 'numpy.ndarray'> (10000, 28, 28, 1)

শেষ থেকে শেষ পাইপলাইন তৈরি করুন

আরও যেতে, আপনি দেখতে পারেন:

ভিজ্যুয়ালাইজেশন

tfds.as_dataframe

tf.data.Dataset বস্তু পরিবর্তিত করা যায় pandas.DataFrame সঙ্গে tfds.as_dataframe উপর ভিজ্যুয়ালাইজ করা Colab

  • যোগ tfds.core.DatasetInfo হিসেবে দ্বিতীয় যুক্তি tfds.as_dataframe চিত্র, অডিও, গ্রন্থে, ভিডিও ঠাহর করা, ...
  • প্রথম x উদাহরণগুলি প্রদর্শন করতে ds.take(x) ব্যবহার করুন। pandas.DataFrame সম্পূর্ণ pandas.DataFrame ইন-মেমরি লোড করবে এবং এটি প্রদর্শন করা খুব ব্যয়বহুল হতে পারে।
ds, info = tfds.load('mnist', split='train', with_info=True)

tfds.as_dataframe(ds.take(4), info)

tfds.show_ex উদাহরণ

tfds.show_examples সহ tfds.show_examples (কেবলমাত্র চিত্রের ডেটাসেট এখনই সমর্থিত):

ds, info = tfds.load('mnist', split='train', with_info=True)

fig = tfds.show_examples(ds, info)

পিএনজি

ডেটাसेट মেটাডেটা অ্যাক্সেস করুন

সমস্ত বিল্ডার একটি tfds.core.DatasetInfo ডেটাसेट মেটাডেটা tfds.core.DatasetInfo অবজেক্ট অন্তর্ভুক্ত।

এটির মাধ্যমে অ্যাক্সেস করা যায়:

ds, info = tfds.load('mnist', with_info=True)
builder = tfds.builder('mnist')
info = builder.info

ডেটাসেট তথ্যটিতে ডেটাसेट সম্পর্কে অতিরিক্ত তথ্য রয়েছে (সংস্করণ, উদ্ধৃতি, হোমপেজ, বিবরণ, ...)।

print(info)
tfds.core.DatasetInfo(
    name='mnist',
    version=3.0.1,
    description='The MNIST database of handwritten digits.',
    homepage='http://yann.lecun.com/exdb/mnist/',
    features=FeaturesDict({
        'image': Image(shape=(28, 28, 1), dtype=tf.uint8),
        'label': ClassLabel(shape=(), dtype=tf.int64, num_classes=10),
    }),
    total_num_examples=70000,
    splits={
        'test': 10000,
        'train': 60000,
    },
    supervised_keys=('image', 'label'),
    citation="""@article{lecun2010mnist,
      title={MNIST handwritten digit database},
      author={LeCun, Yann and Cortes, Corinna and Burges, CJ},
      journal={ATT Labs [Online]. Available: http://yann.lecun.com/exdb/mnist},
      volume={2},
      year={2010}
    }""",
    redistribution_info=,
)


মেটাডেটা বৈশিষ্ট্যগুলি (লেবেলের নাম, চিত্রের আকার, ...)

tfds.features.FeatureDict অ্যাক্সেস করুন:

info.features
FeaturesDict({
    'image': Image(shape=(28, 28, 1), dtype=tf.uint8),
    'label': ClassLabel(shape=(), dtype=tf.int64, num_classes=10),
})

শ্রেণীর সংখ্যা, লেবেলের নাম:

print(info.features["label"].num_classes)
print(info.features["label"].names)
print(info.features["label"].int2str(7))  # Human readable version (8 -> 'cat')
print(info.features["label"].str2int('7'))
10
['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
7
7

আকার, প্রকার:

print(info.features.shape)
print(info.features.dtype)
print(info.features['image'].shape)
print(info.features['image'].dtype)
{'image': (28, 28, 1), 'label': ()}
{'image': tf.uint8, 'label': tf.int64}
(28, 28, 1)
<dtype: 'uint8'>

বিভক্ত মেটাডেটা (যেমন বিভক্ত নাম, উদাহরণের সংখ্যা, ...)

tfds.core.SplitDict অ্যাক্সেস করুন:

print(info.splits)
{'test': <tfds.core.SplitInfo num_examples=10000>, 'train': <tfds.core.SplitInfo num_examples=60000>}

উপলব্ধ বিভক্ত:

print(list(info.splits.keys()))
['test', 'train']

স্বতন্ত্র বিভাজনের উপর তথ্য পান:

print(info.splits['train'].num_examples)
print(info.splits['train'].filenames)
print(info.splits['train'].num_shards)
60000
['mnist-train.tfrecord-00000-of-00001']
1

এটি সাবসপ্লিট এপিআইয়ের সাথেও কাজ করে:

print(info.splits['train[15%:75%]'].num_examples)
print(info.splits['train[15%:75%]'].file_instructions)
36000
[FileInstruction(filename='mnist-train.tfrecord-00000-of-00001', skip=9000, take=36000, num_examples=36000)]

উদ্ধৃতি

যদি আপনি কোনও কাগজের জন্য tensorflow-datasets ব্যবহার করেন তবে দয়া করে ব্যবহৃত ডেটাসেটগুলিতে নির্দিষ্ট কোনও উদ্ধৃতি (যা ডেটাসেট ক্যাটালগটিতে পাওয়া যাবে) ছাড়াও নিম্নলিখিত উদ্ধৃতিটি অন্তর্ভুক্ত করুন।

@misc{TFDS,
  title = { {TensorFlow Datasets}, A collection of ready-to-use datasets},
  howpublished = {\url{https://www.tensorflow.org/datasets} },
}