os.mkdir(out_dir)データ変換関数。shuffle=True)Autoencoderのモデルを作成。別々に定義しておくとEncoder・Decoderを独立して使えるので便利(あとでEncoderのみ使う例を示す)。と2次元まで圧縮してみた。2次元まで圧縮すると潜在空間を描画できる。元の画像サイズまで戻す。EncoderとDecoderで重みは共有せずにそれぞれ別に学習する*1。))変換したテンソルを元の画像に戻す関数。Autoencoderはラベルは使わない。ターゲットは入力画像そのものとなる。Loss関数は入力と出力の間の平均二乗誤差とする。出力が入力に近づくように学習する。エポックごとにロギングするんだけど今回はミニバッチごとにロギングしてた・・・その場合は横軸はepochではなく、iterationになる。Notebook上で保存した画像を描画してみよう。今回は再構成した画像のみ。入力画像も一緒に表示したほうがわかりやすかったかも。ImageImage('autoencoder/image_0.png')Image('autoencoder/image_90.png')潜在空間の可視化テストデータ10000画像をEncoderで潜在空間にマッピングして各画像がどのように分布するか可視化してみよう。ここでは、Encoderしか使わない。エンコーダだけ呼び出せる。なり、784次元の画像が2次元データになっていることがわかる。cmap=pylab.cm.jet)plt.colorbar()plt.grid()各数字のデータがばらついて分布していることがわかる。2次元の潜在空間上では各数字を分離しやすいことを意味する。あたりに散らばっていることがわかる。(CelebA)今回はDCGANをCelebAのデータで試してみた。Network今回は畳み込みニューラルネットワーク。»プロフィールid:aidiary人工知能とその関連分野に興味があります。)はてなブログをはじめよう!aidiaryさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。