novelty日記

データサイエンスやプログラムなど

stackGan-v2をトライ

最近突然話題になり始めたattnGANに関して、 そのコードをトライしようと思ったがまだ公開されていなかった。

そこで著者らの関連作であるstackGAN++をとりあえずトライ。

こちらはコードが既に公開されている。 ちなみにPytorch版。

AWS p2.xlarge Ubuntu 16.04環境, Pytorch=v0.3.0, torchvision=v0.2.0でトライ。

まずはdependencyをインストール。conda createで専用の環境を作成しインストール。

ここでpython2.7指定なのでpython3系でやってしまうと詰まるので注意する。

いずれもpip installでインストールした。

続いてデータのダウンロード。

1.で指定されているpreprocess済のbirdデータ用 char-CNN-RNN text embeddingsモデルを取得。

ここからダウンロードできるが、 その中のbirds/train/char-CNN-RNN-embeddings.pickle当たりがおそらくはそう。

次に2.で指定されているbirdデータそのもの をダウンロード。

3.4.ので指定されているimagenetとLSUNデータはとりあえず今回はダウンロードせず。

これで準備が整ったはずなので、さっそくbirdsデータの学習スクリプトをトライ。

python main.py --cfg cfg/birds_3stages.yml --gpu 0

しかし早速エラーを得る。

IOError: [Errno 2] No such file or directory: u'../data/birds/text/002.Laysan_Albatross/Laysan_Albatross_0002_1027.txt'

見てみると、textというフォルダがたしかに存在せず、代わりにtext_c10というフォルダがあったのでソフトリンクで くっつけて対処(これで本当に良いかは不明)。

再度走らせると今度は無事学習が開始。

学習過程はoutputフォルダにログが存在するので、tensorboardを使って モニタ出来る。

またpretrained modelを使って生成テストもできる。

生成できた画像の例。

Black_Footed_Albatross_0001_796111_256_sentence2.png Black_Footed_Albatross_0005_796090_256_sentence5.png Black_Footed_Albatross_0005_796090_256_sentence6.png Black_Footed_Albatross_0007_796138_256_sentence6.png

色々複数体が合体しているものが多い印象で、良くニューロンの可視化でも似たようなことが起きている事から 今時のネットワークは単体とそうでないものの見分けがつかないのかもしれない。