0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

kaggle tutorial cpmputer vision part 6

Last updated at Posted at 2024-12-21

の解説です。
一般に、訓練するデータの数とネットワークを大きくすると性能は上がり続けます。
しかし、訓練するデータは足りず、ネットワークを大きくするには計算資源が足りません。訓練するデータを増やすために、元データを使いまわせたら(data augmentation)、ということを考えていきます。
斜めにする、一部切り抜き、裏返す、色を変えてみる・・・などさまざまな処理をすることでとりあえずデータを増やすことができます。性能が下がるのでは?と思いますが、実際やってみると、汎化性能も上昇するのでとりあえず一度データが足りていてもやってみるのもありかもしれません。

訓練データの読み込み

Load training and validation sets
ds_train_ = image_dataset_from_directory(
    '../input/car-or-truck/train',
    labels='inferred',
    label_mode='binary',
    image_size=[128, 128],
    interpolation='nearest',
    batch_size=64,
    shuffle=True,
)

'../input/car-or-truck/train':
訓練用画像データが格納されているディレクトリのパスを指定

labels='inferred':
ラベルをディレクトリ名から指定。例えば、train ディレクトリ内のサブディレクトリ名(例えば car と truck)が、そのままクラスラベルとして使用されます。

label_mode='binary':
ラベルを二値の形式でエンコードするように指定。

interpolation='nearest':
最近傍補間:最も近いピクセルの値を使って新しいピクセルの値を決定する。

shuffle=True:
データセットを読み込む前にシャッフル。

データを増やそうとしている部分

# Preprocessing
preprocessing.RandomFlip('horizontal'), # flip left-to-right
preprocessing.RandomContrast(0.5), # contrast change by up to 50%

preprocessing.RandomFlip('horizontal')
訓練中にランダムな確率で画像を水平方向に反転。

preprocessing.RandomContrast(0.5)
訓練中、コントラストをランダムに ±50% の範囲で変更。つまり、元のコントラストの 0.5 倍から 1.5 倍の間の値にする。

まとめ

上の2つで、データを色々いじります。訓練データを増やす部分もネットワークに組み込むのが少し違和感があるかもしれませんが、元となるデータをいじるより自由度が増え、データを使いやすいです。
訓練に使われた層は推論時にskipされます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?