Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Keras 浮动和二进制(一个热编码)列的可变自动编码器层_Keras_Autoencoder - Fatal编程技术网

Keras 浮动和二进制(一个热编码)列的可变自动编码器层

Keras 浮动和二进制(一个热编码)列的可变自动编码器层,keras,autoencoder,Keras,Autoencoder,我需要哪一层来建模可变自动编码器?我想预测X_测试来检测数据集中的异常,该数据集由2个浮点变量(money)和40个二进制列(一个热编码)组成 似乎没有人对我的问题感兴趣,或者我问得不恰当。至少有人可以给我推荐一个地方,在那里我可以得到模特方面的帮助。你能想出来吗?如果数据是浮点,而不是一个热编码,自动编码器使用什么样的丢失函数?L1/L2是浮点变量的丢失函数。这只是理论,我没有';似乎没有人对我的问题感兴趣,或者我问得不恰当。至少有人可以给我推荐一个地方,在那里我可以得到模特方面的帮助。

我需要哪一层来建模可变自动编码器?我想预测X_测试来检测数据集中的异常,该数据集由2个浮点变量(money)和40个二进制列(一个热编码)组成


似乎没有人对我的问题感兴趣,或者我问得不恰当。至少有人可以给我推荐一个地方,在那里我可以得到模特方面的帮助。你能想出来吗?如果数据是浮点,而不是一个热编码,自动编码器使用什么样的丢失函数?L1/L2是浮点变量的丢失函数。这只是理论,我没有';似乎没有人对我的问题感兴趣,或者我问得不恰当。至少有人可以给我推荐一个地方,在那里我可以得到模特方面的帮助。你能想出来吗?如果数据是浮点,而不是一个热编码,自动编码器使用什么样的丢失函数?L1/L2是浮点变量的丢失函数。这只是理论,我没有';没有实施。
m = 50
n_z = 2
n_epoch = 10


# Q(z|X) -- encoder
inputs = Input(shape=(42,))
h_q = Dense(21, activation='relu')(inputs)
mu = Dense(n_z, activation='linear')(h_q)
log_sigma = Dense(n_z, activation='linear')(h_q)
def sample_z(args):
    mu, log_sigma = args
    eps = K.random_normal(shape=(m, n_z), mean=0., std=1.)
    return mu + K.exp(log_sigma / 2) * eps


# Sample z ~ Q(z|X)
z = Lambda(sample_z)([mu, log_sigma])
# P(X|z) -- decoder
decoder_hidden = Dense(21, activation='relu')
decoder_out = Dense(42, activation='sigmoid')

h_p = decoder_hidden(z)
outputs = decoder_out(h_p)
# Overall VAE model, for reconstruction and training
vae = Model(inputs, outputs)

# Encoder model, to encode input into latent variable
# We use the mean as the output as it is the center point, the representative of the gaussian
encoder = Model(inputs, mu)

# Generator model, generate new data given latent variable z
d_in = Input(shape=(n_z,))
d_h = decoder_hidden(d_in)
d_out = decoder_out(d_h)
decoder = Model(d_in, d_out)
def vae_loss(y_true, y_pred):
    """ Calculate loss = reconstruction loss + KL loss for each data in minibatch """
    # E[log P(X|z)]
    recon = K.sum(K.binary_crossentropy(y_pred, y_true), axis=1)
    # D_KL(Q(z|X) || P(z|X)); calculate in closed form as both dist. are Gaussian
    kl = 0.5 * K.sum(K.exp(log_sigma) + K.square(mu) - 1. - log_sigma, axis=1)

    return recon + kl

vae.compile(optimizer='adam', loss=vae_loss)
vae.fit(X_train, X_train, batch_size=m, nb_epoch=n_epoch)