hideyoshi.life

WEB系フリーエンジニアの日々

GANデビュー

趣味がてらGANを開始しました。かれこれ1年もブログ書いてないのでいい機会なのでログ残しておきます。

 

2年前から機械学習はちょこちょこ勉強していたんですが、いかんせんモチベーションが高まらず走りだけやって放置していました。

 

GAN自体も1年以上前から知っていたんですが、あんまりビジネスよりでもなさそうだなと関心ももってなかったんですが、単なる趣味としてはかなり面白いんじゃないかなとはじめてみた。

 

といってもptyhonもkerasの使い方も完全に忘れてしまいほぼ1からのチュートリアル。

https://github.com/eriklindernoren/Keras-GAN

これがメジャーぽいのでとりあえずやってみたんですが、、、いきなりのエラー。。。

おそらくkerasかtensorflowのバージョンの違いかでエラーが発生しているみたい。

 

色々やりなおしてもやっぱり同じエラーなので仕方なくソースをデバッグ。。。

エラーそのものでなくて、まずはワーニング

UserWarning: Discrepancy between trainable weights and collected trainable weights, did you set `model.trainable` without calling `model.compile` after ?

  'Discrepancy between trainable weights and collected trainable'

 

を治そうとtrainableの位置をcompile前に移動したら、エラーも解消して最後まで完了。

完全に頓珍漢な修正。。。GANの仕組みを理解せずにやってるとこうなりますね。。

ジェネレータ学習ではディスクリミネータのパラメータを固定ですが、そのまで固定しちゃうとディスクリミネータがバカのままちっとも学習しなくなってしまう。。。。orz ちゃんとした対応は追って記載します。気長にね。。

 

なんとか最後まで完了したけど、はて、、、これうまく動いているのかな。

 

エポックが設定で14000回になってたのですが、どうもmacbookpro(13インチでは最高のスペックなんですが。。)だと全然パフォーマンスがでない。。一旦1000回に変更してなんとか5分程度で完了したんですが、当然10分の1以下の回数でちゃんとした画像が生成されるわけでもなく。。

 

まあ、気長にソースでも読みながらすすめましょうかね。

あとちゃんとしたデスクトップマシンも調達しよう!

 

仕事につなげようとかでなく、趣味って考えるとかなり気が楽ですね。