データセットの準備の仕方
SmallTrainで学習、予測をする際のデータセットの準備の仕方を説明します。
SmallTrainで学習、予測をする際のデータセットをご自身で準備することができます。
Overview
データセットに関する設定項目は、オペレーションファイルの中にあります。
{
...
"data_dir_path": "/var/data/cifar-10-image/",
"data_set_def_path": "/var/data/cifar-10-image/data_set_def/train_cifar10_classification.csv",
"cache_data_set_id": "train_cifar10_classification",
...
}
データセットを準備するために必要なのは次の作業です。
- データファイルをデータディレクトリに格納し、そのディレクトリパスを
data_dir_pathに指定します。 - データ定義ファイルをcsv形式で作成し、そのパスを
data_set_def_pathに指定します。 cache_data_set_idを、データセットが一意になるように指定します。
データセットの構造
例として、Getting Started(CIFAR-10 image classification)を実行した直後のサーバにアクセスしていることを想定します。
今、ローカルディレクトリ/var/data/cifar-10-image/以下は、次のような構造になっています。
/var/data/cifar-10-image/
├── data_batch_1 // 学習データが格納されたディレクトリのひとつ
├── ...
├── data_batch_5 // 学習データが格納されたディレクトリのひとつ
├── data_set_def // データセット定義ファイルが格納されたディレクトリ
| └── train_cifar10_classification.csv // データセット定義ファイル
└── test_batch // テストデータが格納されたディレクトリ
そして、データセット定義ファイル(上記の場合 /var/data/cifar-10-image/data_set_def/train_cifar10_classification.csv にあります)
は次のような内容になっています。
data_set_id,label,sub_label,test,group
/var/data/cifar-10-image/data_batch_1/data_batch_1_i0_c6.png,6,6,0,TRAIN
/var/data/cifar-10-image/data_batch_1/data_batch_1_i1_c9.png,9,9,0,TRAIN
/var/data/cifar-10-image/data_batch_1/data_batch_1_i2_c9.png,9,9,0,TRAIN
...
/var/data/cifar-10-image/data_batch_5/data_batch_5_i9999_c1.png,1,1,0,TRAIN
/var/data/cifar-10-image/test_batch/test_batch_i0_c3.png,3,3,1,TRAIN
...
/var/data/cifar-10-image/test_batch/test_batch_i9997_c5.png,5,5,1,TRAIN
/var/data/cifar-10-image/test_batch/test_batch_i9998_c1.png,1,1,1,TRAIN
/var/data/cifar-10-image/test_batch/test_batch_i9999_c7.png,7,7,1,TRAIN
もし、あなたが新しいデータファイル/var/data/cifar-10-image/data_batch_6/data_batch_6_i10000_c9.pngをclass = 9としてラベル付けして、学習データとして追加した場合は、次の2つの手順をおこなってください。
- 新しいデータファイルを次のパスに格納します:
/var/data/cifar-10-image/data_batch_6/data_batch_6_i10000_c9.png - 次のような行をデータセット定義ファイルに追加します。
/var/data/cifar-10-image/data_batch_6/data_batch_6_i10000_c9.png,9,9,0,TRAIN
別の例として、もしあなたが新しいデータファイル/var/data/cifar-10-image/test_batch/test_batch_i10000_c0.pngを`class = 90としてラベル付けして、学習データとして追加した場合は、次の2つの手順をおこなってください。
- 新しいデータファイルを次のパスに格納します:
/var/data/cifar-10-image/test_batch/test_batch_i10000_c0.png - 次のような行をデータセット定義ファイルに追加します。
/var/data/cifar-10-image/test_batch/test_batch_i10000_c0.png,0,0,1,TRAIN
データセット仕様
-
オペレーションファイル
data_dir_path: String、データファイルを格納するディレクトリパス。data_set_def_path: String、データセット定義ファイルのファイルパス。cache_data_set_id: String、データセットを一意に示す文字列。target_group: String、データセットとして使用するグループ(参照:データセット定義ファイル-group).
-
データセット定義ファイル
- フォーマット: csv
- 列項目:
data_set_id: String、データファイルパス。また、そのデータファイルを識別するためのidとしても機能します。label: Integer、そのデータがどのクラスに所属するかのラベルsub_label: Integer、サブラベル。labelとsub_labelの組み合わせでラベリングしたい場合に使用します。test: Integer、テストデータとして使用するかどうかのフラグ。もし1を指定するとテストデータとして使用します。group: String、グループ識別子。任意のデータを使用したくない場合は、groupを、オペレーションファイル設定項目のtarget_groupとは異なる文字列にすることで、そのデータを対象から除外することができます。