Расчет потерь в модели VAE со сценарием с несколькими входами и одним выходом ⇐ Python
Расчет потерь в модели VAE со сценарием с несколькими входами и одним выходом
Я работал над обучением своей модели VAE, используя два входных изображения: изображение диэлектрической проницаемости внутренней среды и изображение местоположения точки доступа в помещении. Я успешно сформулировал измерения кодера, декодера и скрытого пространства.
Чтобы вычислить общие потери для двух входных тензоров, я выполнил следующие шаги:
# Рассчитать потери при реконструкции для Pertivity_input реконструкция_loss_perm = tf.reduce_mean(tf.reduce_sum(tf.keras.losses.binary_crossentropy(permittivity_input, vae_output), axis=(1, 2))) # Рассчитать потери при реконструкции для APloc_input реконструкция_loss_APloc = tf.reduce_mean(tf.reduce_sum(tf.keras.losses.binary_crossentropy(APloc_input, vae_output), axis=(1, 2))) # Вычисление потерь на дивергенцию KL kl_loss = -0,5 * tf.reduce_mean(tf.reduce_sum(1 + z_log_var - tf.square(z_mean) - tf.exp(z_log_var), ось=1)) # Общие потери VAE vae_loss = реконструкция_потеря_перм + реконструкция_потеря_APloc + kl_loss # Добавьте в модель общие потери VAE vae.add_loss(vae_loss) Однако я столкнулся со следующей ошибкой: TypeError: unhashable type: «DictWrapper» в строке, где я добавляю потери в модель VAE → (vae.add_loss(vae_loss)).
Я буду очень признателен за любые предложения и идеи по решению этой проблемы.
Спасибо, Рахул
Я работал над обучением своей модели VAE, используя два входных изображения: изображение диэлектрической проницаемости внутренней среды и изображение местоположения точки доступа в помещении. Я успешно сформулировал измерения кодера, декодера и скрытого пространства.
Чтобы вычислить общие потери для двух входных тензоров, я выполнил следующие шаги:
# Рассчитать потери при реконструкции для Pertivity_input реконструкция_loss_perm = tf.reduce_mean(tf.reduce_sum(tf.keras.losses.binary_crossentropy(permittivity_input, vae_output), axis=(1, 2))) # Рассчитать потери при реконструкции для APloc_input реконструкция_loss_APloc = tf.reduce_mean(tf.reduce_sum(tf.keras.losses.binary_crossentropy(APloc_input, vae_output), axis=(1, 2))) # Вычисление потерь на дивергенцию KL kl_loss = -0,5 * tf.reduce_mean(tf.reduce_sum(1 + z_log_var - tf.square(z_mean) - tf.exp(z_log_var), ось=1)) # Общие потери VAE vae_loss = реконструкция_потеря_перм + реконструкция_потеря_APloc + kl_loss # Добавьте в модель общие потери VAE vae.add_loss(vae_loss) Однако я столкнулся со следующей ошибкой: TypeError: unhashable type: «DictWrapper» в строке, где я добавляю потери в модель VAE → (vae.add_loss(vae_loss)).
Я буду очень признателен за любые предложения и идеи по решению этой проблемы.
Спасибо, Рахул
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение