我正在尝试在类似的行上创建自动编码器(CVAE),如这里给出的:Use Conditional Variational Autoencoder for Regression (CVAE)。但是,在vae_loss()
和KL_loss()
中,使用的变量(l_sigma
,mu
)与这些函数所接受的变量不同。我的问题是什么是正确的方式来传递所需的变量,在这种情况下4 -l_sigma
,mu
,y_true
,y_pred
,通过cvae.compile()
和cvae.fit()
的损失函数?似乎有另一种方法https://github.com/PacktPublishing/Advanced-Deep-Learning-with-Keras/blob/master/chapter8-vae/cvae-cnn-mnist-8.2.1.py#L267来定义损失函数,给出所需的4个变量。你知道吗?
1条答案
按热度按时间yrdbyhpb1#
要使用
Tensorflow
将超参数添加到自定义损失函数中,您必须创建一个接受超参数的 Package 器函数,因此您可以尝试如下定义自定义损失函数:之后,您可以像这样调用
compile()
方法:cvae.compile(loss=vae_loss_with_hyperparameters(l_sigma=..., mu=...))
如果有用就告诉我。