データセットの準備の仕方

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",
...
}

データセットを準備するために必要なのは次の作業です。

  1. データファイルデータディレクトリに格納し、そのディレクトリパスをdata_dir_pathに指定します。
  2. データ定義ファイルをcsv形式で作成し、そのパスをdata_set_def_pathに指定します。
  3. 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.pngclass = 9としてラベル付けして、学習データとして追加した場合は、次の2つの手順をおこなってください。

  1. 新しいデータファイルを次のパスに格納します: /var/data/cifar-10-image/data_batch_6/data_batch_6_i10000_c9.png
  2. 次のような行をデータセット定義ファイルに追加します。
/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つの手順をおこなってください。

  1. 新しいデータファイルを次のパスに格納します: /var/data/cifar-10-image/test_batch/test_batch_i10000_c0.png
  2. 次のような行をデータセット定義ファイルに追加します。
/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、サブラベル。labelsub_labelの組み合わせでラベリングしたい場合に使用します。
      • test: Integer、テストデータとして使用するかどうかのフラグ。もし1を指定するとテストデータとして使用します。
      • group: String、グループ識別子。任意のデータを使用したくない場合は、groupを、オペレーションファイル設定項目のtarget_groupとは異なる文字列にすることで、そのデータを対象から除外することができます。