TensorFlow.org で表示 | Google Colab で実行 | GitHub で表示 | ノートブックをダウンロード |
概要
データセットコレクションは、任意の数の既存の TFDS データセットをグループ化し、それらに単純な演算を実行するための単純な方法を提供します。
たとえば、同じタスクに関連する様々なデータセットをグループ化したり、一定の数の様々なタスクでモデルを簡単にベンチマークしたりするのに役立ちます。
セットアップ
まず、いくつかのパッケージをインストールします。
# Use tfds-nightly to ensure access to the latest features.
pip install -q tfds-nightly tensorflow
pip install -U conllu
TensorFlow と Tensorflow Datasets パッケージを開発環境にインポートします。
import pprint
import tensorflow as tf
import tensorflow_datasets as tfds
データセットコレクションは、任意の数の既存の TensorFlow Datasets(TFDS)データセットをグループ化し、それらに単純な演算を実行するための単純な方法を提供します。
たとえば、同じタスクに関連する様々なデータセットをグループ化したり、一定の数の様々なタスクでモデルを簡単にベンチマークしたりするのに役立ちます。
利用可能なデータセットコレクションを見つける
すべてのデータセットコレクションは、tfds.core.dataset_collection_builder.DatasetCollection
のサブクラスです。
利用可能なビルダーのリストを取得するには、tfds.list_dataset_collections()
を使用します。
tfds.list_dataset_collections()
データセットコレクションを読み込んで検査する
データセットコレクションを読み込む最も簡単な方法は、tfds.dataset_collection
コマンドを使用して DatasetCollectionLoader
オブジェクトをインスタンス化することです。
collection_loader = tfds.dataset_collection('xtreme')
TFDS データセットと同じ構文に従って、データセットコレクションの特定のバージョンを読み込むことができます。
collection_loader = tfds.dataset_collection('xtreme:1.0.0')
データセットコレクションローダーは、コレクションに関する情報を表示できます。
collection_loader.print_info()
データセットコレクションローダーは、コレクションに含まれるデータセットに関する情報も表示できます。
collection_loader.print_datasets()
データセットコレクションからデータセットを読み込む
コレクションから 1 つのデータセットを読み込む最も簡単な方法は、DatasetCollectionLoader
オブジェクトの load_dataset
メソッドを使用することです。これは、tfds.load
を呼び出して、必要なデータセットを読み込みます。
この呼び出しは、分割名とそれに対応する tf.data.Dataset
のディクショナリを返します。
splits = collection_loader.load_dataset("ner")
pprint.pprint(splits)
load_dataset
は、以下のオプションのパラメータを受け入れます。
split
: 読み込む分割。単一の分割(split="test"
)または分割のリスト(split=["train", "test"]
)を受け付けます。指定されていない場合は、特定のデータセットのすべての分割を読み込みます。loader_kwargs
:tfds.load
関数に渡されるキーワード引数。様々な読み込みオプションの総合的な概要については、tfds.load
ドキュメントをご覧ください。
データセットコレクションから複数のデータセットを読み込む
コレクションから複数のデータセットを読み込む最も簡単な方法は、DatasetCollectionLoader
オブジェクトの load_datasets
メソッドを使用することです。これは、tfds.load
を呼び出して、必要なデータセットを読み込みます。
このメソッドはデータセット名のディクショナリを返し、以下の例のように、それぞれが分割名とそれに対応する tf.data.Dataset
のディクショナリに関連付けられています。
datasets = collection_loader.load_datasets(['xnli', 'bucc'])
pprint.pprint(datasets)
load_all_datasets
メソッドは、特定のコレクションの利用可能なすべてのデータセットを読み込みます。
all_datasets = collection_loader.load_all_datasets()
pprint.pprint(all_datasets)
load_datasets
メソッドは、以下のオプションのパラメータを受け入れます。
split
: 読み込む分割。単一の分割(split="test"
)または分割のリスト(split=["train", "test"]
)を受け付けます。指定されていない場合は、特定のデータセットのすべての分割を読み込みます。loader_kwargs
:tfds.load
関数に渡されるキーワード引数。様々な読み込みオプションの総合的な概要については、tfds.load
ドキュメントをご覧ください。
loader_kwargs
を指定する
loader_kwargs
は、tfds.load
関数に渡されるオプションのキーワード引数です。以下の 3 つの方法で指定できます。
DatasetCollectionLoader
クラスの初期化時:
collection_loader = tfds.dataset_collection('xtreme', loader_kwargs=dict(split='train', batch_size=10, try_gcs=False))
DatasetCollectioLoader
のset_loader_kwargs
メソッドを使用する:
collection_loader.set_loader_kwargs(dict(split='train', batch_size=10, try_gcs=False))
load_dataset
、load_datasets
、およびload_all_datasets
メソッドのオプションのパラメータとして:
dataset = collection_loader.load_dataset('ner', loader_kwargs=dict(split='train', batch_size=10, try_gcs=False))
フィードバック
データセット作成ワークフローは継続的な改善が進められていますが、問題を認識していなければ、改善することはできません。データセットの作成中にどのような問題またはエラーが発生しましたか?混乱したり、初めて使用したときに機能しなかった部分はありませんでしたか?フィードバックを GitHub にお送りください。