Lightweight GANの初心者~中級者向け使い方解説

2022年5月4日

Google Ad

最も簡潔なマニュアル

1. CUDAをインストールする

CUDAのページ一番下にあるDownload CUDA Toolkitから自分のPCに合うものをダウンロードし、インストールする。

NVIDIAドライバも最新版にする。

2. Pythonモジュールをインストールする

>pip install torch==1.7.1+cu101 torchvision==0.8.2+cu101 torchaudio===0.7.2 -f https://download.pytorch.org/whl/torch_stable.html
>pip install kornia kornia einops adabelief-pytorch gsa-pytorch fire retry

3. モデル作成

>lightweight_gan --data フォルダパス --image-size 128 --amp

4. 画像生成

>lightweight_gan --generate

5. GIF画像生成

>lightweight_gan --generate-interpolation

主要引数使用頻度順解説

初心者向け

--amp

混合精度。16bitと32bitの浮動小数点型を混同して使うことによって精度が上がる。

つまりノーリスクで33%速度が上がり40%メモリ節約できる。必須。

--data パス名

パス名の場所に入っている画像を学習データとする。

--image-size N

Nのサイズの画像を生成する。

--multi-gpus

複数のGPUを使う。

--name フォルダ名

ここで指定したフォルダは、あらかじめ存在していない場合でも、本プログラム開始時に自動生成される。

フォルダ名が無指定の場合、defaltフォルダが指定したフォルダとして扱われる。

生成したモデルはすべて、ドライブの一番上の階層にあるmodelsフォルダ内の今回指定したフォルダに保存される。

生成する画像はすべて、 ドライブの一番上の階層にあるresultsフォルダ内の今回指定したフォルダに保存される。

--num-image-tiles N

生成画像はN×N枚の画像を並べた状態で出力される。

GithubのREADMEにはデフォルトが5とあるが本当は8。

中級者向け

--num-train-steps N

Nステップ学習させる。

--show-progress

GANの生成画像の変遷をパラパラ漫画のようにしてmp4に保存。

--batch-size N

バッチサイズ。大きくすると経過時のサンプル数が大きくなるが、そのかわりにGPUメモリ消費が激しくなる。

--gradient-accumulate-every N

勾配を蓄積するバッチの数。仮想的にバッチサイズをN倍できる。

学習データ水増し用引数解説

--aug-types []

以下にあげたもののうち、水増しに使用するものを選び、角括弧の中にコンマ区切りにして入れる。

  • color
  • cutout
  • offset
    • offset_h
    • offset_v
  • translation

全ての水増し機能を使う場合は以下のようにする。

--aug-types [color,cutout,offset,translation]

color

明度・彩度・コントラストをランダムに変更する。

cutout

黒い四角形で画像の一部をランダムに覆い隠す。

offset

ランダムにx方向、y方向にずらす。はみ出した分は反対側に貼り付けられる。

X方向、Y方向のどちらかのみずらしたい場合は以下の値を代わりに使う。

X方向:offset_h、Y方向:offset_v

translation

黒い背景のキャンバスの上で、画像をランダムにずらして配置する。

制限事項

学習データする画像はjpegかpngである。

参考文献

実践した記事

「Lightweight GAN 連載記事」でタグ付けを行っている。

広告

GANの本。

Google Ad