6-3疎オートエンコーダ--Keras実装


クリックして完全なコードを表示http://www.daimapi.com/neuralnetwork6_3/
      このコードはPython 3により実現され,深さ学習ツールパッケージKerasに利用された.
      従来のautoencoderの原理から,autoencoderは直接学習する入力データの非表示層表現であるが,VAEはそうではないことがわかる.
      入力データのデータセットD(明示変数)は、暗黙変数zのセットによって制御され、データセットの分布は完全にこの暗黙変数のセットによって制御され、この暗黙変数のセット間は互いに独立し、Gauss分布に従うと仮定する.
#! -*- coding: utf-8 -*-
from __future__ import print_function

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

from keras.layers import Input, Dense, Lambda
from keras.models import Model
from keras import backend as K
from keras import metrics
from keras.datasets import mnist
from keras.utils import to_categorical

batch_size = 100
original_dim = 784
latent_dim = 2 #     2           
intermediate_dim = 256
epochs = 10
epsilon_std = 1.0
num_classes = 10

#   MNIST   
(x_train, y_train_), (x_test, y_test_) = mnist.load_data()
x_train = x_train.astype('float32') / 255.
x_test = x_test.astype('float32') / 255.
x_train = x_train.reshape((len(x_train), np.prod(x_train.shape[1:])))
x_test = x_test.reshape((len(x_test), np.prod(x_test.shape[1:])))
y_train = to_categorical(y_train_, num_classes)
y_test = to_categorical(y_test_, num_classes)