山内のサイト

Chainer-VAEを試す 2017-04-16

Katoh-バージョン 2017-04-16

RyotaKatoh/chainer-Variational-AutoEncoder をダウンロード

別の人がこれを試したレポート

で、修正点は

で対応。


で、MNISTを試してみた。

まずM1モデル作製

python train_VAE.py --dataset mnist --gpu 1

data_dir(=dataset)とoutput_dir(=model), log_dir(=log)はデフォルト値を使った。
生成されたのは、./model/mnist_100.pkl

次にM1データ生成

python generate.py --dataset mnist --model model/mnist_100.pkl --gpu 1

output_dir(=generated)はデフォルト値を使用。
生成されたのは、./generated/0.jpg 〜 99.jpg。下図の、左上から横に順に0, 1, 2, ...とし、1行あたり10枚ずつ、全部で10行分で100マイ表示。

generated.jpg

次にM2モデル作成

python train_VAE_yz_x.py --dataset mnist --gpu 1

data_dir(=dataset)とoutput_dir(=model)はデフォルト値を使用。
生成されたのは、./model/mnist_VAE_YZ_X_100.pkl 〜 1000.pkl

最後にM2データ生成

python generate_yz_x_py --model model/mnist_VAE_ZY_X_1000.pkl --dataset mnist --gpu 1

data_dir(=dataset)、output_dir(=generated_yz_x)、n_samples(=10)はデフォルト値を使用。~
生成されたのは、./generated_yz_x/0.jpg 〜 9.jpg。下図のそれぞれの行が0.jpgから9.jpgに対応する。

generated_yz_x.jpg

動画生成の処理は、

python run_flying.py --dataset mnist --model model/mnist_VAE_ZY_X_1000.pkl --output_file flying.mp4 --gpu 1

data_dir(=dataset)、output_dir(=flying)はデフォルト値を使用。
生成されたのは、./flying/flying.mp4

fileflying.mp4


VAE on MNIST (pfnのchainer examplesにある例) 2017-04-12 , 2017-05-04

ソースはここからダウンロード

ネットワークグラフは、
graph.png

実行は

python train_vae.py [--gpu 0 ←あれば]

実行ログ

(testchainer) [yamanouc@ginger vae2]$ python train_vae.py --gpu 0
GPU: 0
# dim z: 20
# Minibatch-size: 100
# epoch: 100

load MNIST dataset
Downloading train-images-idx3-ubyte.gz...
Done
Downloading train-labels-idx1-ubyte.gz...
Done
Downloading t10k-images-idx3-ubyte.gz...
Done
Downloading t10k-labels-idx1-ubyte.gz...
Done
Converting training data...
Done
Converting test data...
Done
Save output...
Done
Convert completed
epoch 1
graph generated
train mean loss=148.59899799346923, mean reconstruction loss=124.50837924957276
test  mean loss=125.18526237487794, mean reconstruction loss=98.57060981750489
epoch 2
train mean loss=123.04057464599609, mean reconstruction loss=96.353647702535
test  mean loss=118.93990997314454, mean reconstruction loss=92.34232131958008
epoch 3
train mean loss=118.02712524414062, mean reconstruction loss=91.34297876993816
test  mean loss=115.37630790710449, mean reconstruction loss=88.64173065185547
epoch 4
train mean loss=114.901012840271, mean reconstruction loss=88.36450468699137
test  mean loss=112.70116027832032, mean reconstruction loss=85.9324210357666
epoch 5
train mean loss=112.8132208887736, mean reconstruction loss=86.36892550150553
test  mean loss=111.18254699707032, mean reconstruction loss=85.45186782836915
epoch 6
train mean loss=111.23203309377034, mean reconstruction loss=84.92290086110432
test  mean loss=109.96828285217285, mean reconstruction loss=84.15437156677245 
(中略 )
epoch 98
train mean loss=100.26071676890055, mean reconstruction loss=74.77274569193523
test  mean loss=101.09095085144043, mean reconstruction loss=75.59276359558106
epoch 99
train mean loss=100.2337767791748, mean reconstruction loss=74.78483655293782
test  mean loss=100.93597717285157, mean reconstruction loss=75.5415592956543
epoch 100
train mean loss=100.23028344472249, mean reconstruction loss=74.74699109395345
test  mean loss=101.30174774169922, mean reconstruction loss=76.02072853088379
save the model
save the optimizer

出来上がったmodelを使って、
(A)train側データを画像表示 [1, 3, 5, 10, 2, 0, 13, 15, 17]

元画像 x学習結果画像 model(x)
train.pngtrain_reconstructed.png

(B)test側データを画像表示 [3, 2, 1, 18, 4, 8, 11, 17, 61]

元画像 x学習結果画像 model(x)
test.pngtest_reconstructed.png

(C)ベクトルzをランダムに生成したときの画像
  N(a, b, (c, d)) は、平均:a、分散:b の正規分布に従う乱数を(cxd)の行列で出力する

model.decode(N(0, 1, (9, 20)))
sampled.png

添付ファイル: filetrain_reconstructed.png 37件 [詳細] filetrain.png 42件 [詳細] filetest_reconstructed.png 25件 [詳細] filetest.png 42件 [詳細] filesampled.png 41件 [詳細] filegraph.png 34件 [詳細] fileflying.mp4 34件 [詳細] filegenerated.jpg 69件 [詳細] filegenerated_yz_x.jpg 59件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-05-07 (日) 11:16:15 (135d)