【发布时间】:2019-09-02 23:25:48
【问题描述】:
如何在变分自编码器网络中获取输出层的值并计算其范数?假设我在Tensorflow 中有以下网络:
inputs = Input(shape=(dim,))
x = Dense(intermediate_dim, activation='relu')(inputs)
z_mean = Dense(latent_dim, name='z_mean')(x)
z_log_var = Dense(latent_dim, name='z_log_var')(x)
z = Lambda(sampling, output_shape=(latent_dim,), name='Z')([z_mean, z_log_var])
encoder = Model(inputs, [z_mean, z_log_var, z], name='encoder')
latent_inputs = Input(shape=(latent_dim,), name='z_sampling')
x = Dense(intermediate_dim, activation='relu',name='Hidden_Layer')(latent_inputs)
outputs = Dense(dim, activation='sigmoid')(x)
decoder = Model(latent_inputs, outputs, name='decoder')
outputs = decoder(encoder(inputs)[2])
vae = Model(inputs, outputs, name='vae_mlp')
我想在运行模型后找到输出层的 L_1 范数,即tf.norm(outputs,ord=1)。可用的 Tensorflow 函数帮不了我。例如使用此命令后K.eval(tf.norm(decoder.layers[2].output,ord=2))
我收到了这个错误:
InvalidArgumentError: You must feed value for placeholder tensor 'z_sampling' with dtype float and shape [?,]
你有什么想法吗?
【问题讨论】:
标签: tensorflow keras keras-layer