0
0

More than 1 year has passed since last update.

torchvision.datasetsのtransform引数でのデータ拡張に疑問を抱いた話

Posted at

疑問点

torchvisionライブラリにはデータセットを読み込む関数が用意されていて,transformという引数を指定することで簡単にデータ拡張が行える.以下はcifar-10のデータセットを読み込む関数.

make_datasets.py
import torchvision
torchvision.datasets.CIFAR10(root, train, transform, target_transform, download)

しかし,データ拡張と言ってもデータローダーに渡されるデータ数は増えない.勘違いも相まって地味にここで30分くらい悩んだ.

今のところの理解

(ライブラリのコードを読んで解釈しているだけなので間違えているかもしれません.よろしくお願いします.)

torchvision.datasets.CIFAR10()の中身を読んでみると,__getitem__()の内部でtransform関数を呼び出していた.

どうやら,初期化時点でデータ拡張をしてデータ数を水増ししている訳ではなく,データローダーからデータを取り出す時にデータがtransformされて与えられるということらしい.

つまり,データ拡張といっても,
1epochで学習する画像枚数は変わらず,各epochでデータローダーが渡してくるデータがtransformされているだけ
のようである.
データ拡張とかいう名称がややこしくしている気がする

データ数を水増しして,そのデータで単に学習を回すと思っていましたが,各epochでは同じ画像からtransformされた画像は使わないみたいですね.

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