電脳ヨーグルト(技術ブログ)

勉強したことを淡々とメモしていきます

DCGANのモデルの層の数を変更してtestしてみる。

GANで生成する画像の精度を上げるために、DCGANのモデルの層の数を変更する。

 

Generatorの方

畳み込みを1層増やしてself.dc5までにするself.bn4も追加。

追加した畳み込み層に対応する活性化関数(Lelu)を追加する。

そのまま畳み込み層を増やしただけだと生成画像のサイズが元の二倍になってしまうので

 

self.dc4 = L.Deconvolution2D(ch // 8, ch // 16, 3, 1, 1, initialW=w)#画像サイズ1倍に

として調節。

 

この時点でtest.pyを実行。モデルとして使用する変更版のGeneratorが畳み込み4層なのに対し、学習したGeneratorの畳み込みが3層なのでパラメータの変更が行えず、配列の値が違っているとValueErrorがでた。

testは次の学習のインターバル的な役割

 

Discriminatorの方は精度がそこそこだったのでそのままで実行

 

 

GPUで実行デフォルトの10エポックで実行:終了時間が6時間30分だったので、停止。

 

引数に—epoch=8を加えて実行 7秒くらいでおちる。

 

エラー文:Exception in main training loop: out of memory to allocate

 

原因 メモリー不足

 

解決策

nvidia-smi でメモリーの使用状況を参照

kill -9 PIDで削除してメモリーをあける

 

実行できた