У меня есть две разные потери. Один - reconstruction_loss
, а другой - kl_loss
.
vae_loss
- совокупный убыток reconstruction_loss + kl_loss
.
Как я могу распечатать две потери (reconstruction_loss
и kl_loss
), когда я тренирую модель?
Мой код здесь
reconstruction_loss = mse(inputs, outputs)
kl_loss = 1 + z_log_var_encoded - K.square(z_mean_encoded) - K.exp(z_log_var_encoded)
kl_loss = K.sum(kl_loss, axis=-1)
kl_loss *= -0.5
kl_loss_metric = kl_loss
kl_loss *= beta
vae_loss = K.mean(reconstruction_loss + kl_loss)
vae.add_loss(vae_loss)
opt = tf.keras.optimizers.Adam(lr=0.001)
vae.compile(optimizer=opt, metrics=['mse'])
history = vae.fit(x_trn, epochs=epochs, batch_size=batch_size, validation_data=(x_val, None))
и все Я вижу это
Epoch 1/1000
15348/15348 [==============================] - 0s 26us/step - loss: 40.5305 - val_loss: 5.1290
Epoch 2/1000
15348/15348 [==============================] - 0s 20us/step - loss: 4.4478 - val_loss: 3.7231
Epoch 3/1000
15348/15348 [==============================] - 0s 19us/step - loss: 3.3014 - val_loss: 2.9859
Epoch 4/1000
15348/15348 [==============================] - 0s 19us/step - loss: 2.8866 - val_loss: 2.6053
Epoch 5/1000
15348/15348 [==============================] - 0s 20us/step - loss: 2.7549 - val_loss: 2.4140
Epoch 6/1000
15348/15348 [==============================] - 0s 20us/step - loss: 2.2844 - val_loss: 2.2147