データセットの準備の仕方
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
とは異なる文字列にすることで、そのデータを対象から除外することができます。