Как добавить доверительный уровень к моей модели unet, а затем использовать его для регуляризации потерь в задаче перевоPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как добавить доверительный уровень к моей модели unet, а затем использовать его для регуляризации потерь в задаче перево

Сообщение Anonymous »

Чтобы добавить карту достоверности в мою сеть и затем использовать ее для регуляризации потерь, я добавил уровень достоверности в конце сети и применил его перед тем, как делать окончательные прогнозы.
Это модуль достоверности, который я использую:< /p>

Код: Выделить всё

# Add a second output for confidence map
self.confidence_layer = nn.Sequential(
nn.Conv2d(filters[0], out_channels, kernel_size=3, padding=1),  # 2-channel confidence map
nn.Sigmoid()  # Confidence values between 0 and 1
)
и вот как я применил его к последнему слою перед окончательным прогнозом:

Код: Выделить всё

x10 = self.up_residual_conv3(x9)
self.check_for_nan(x10, "After up_residual_conv3")

prediction = self.output_layer(x10)
self.check_for_nan(prediction, "After output layer")
#adding this confidence layer at the end to see if it can improve results
confidence_map = self.confidence_layer(x10)
# Return both the prediction and the confidence map
return prediction, confidence_map
и вот как я взвесил потери с помощью карты достоверности:

Код: Выделить всё

   loss_per_pixel = criterion(predictions, targets)

epsilon = 1e-6
weighted_loss = (confidence_map + epsilon) * loss_per_pixel
но это ухудшает производительность сети (как количественную, так и качественную). Он вносит артефакты в сгенерированные изображения. Что может быть не так?
Я добавил значение эпсилон, чтобы предотвратить исчезновение градиента, когда достоверность равна нулю. Однако я не заметил особых изменений по сравнению с ситуацией, когда я не включал эпсилон. Это может быть связано с тем, как я реализовал уровень доверия в архитектуре, или с тем, как я упорядочил потери с помощью доверия, или, возможно, с тем и другим.
но какие изменения следует внести здесь?
Изображение

Первая строка является входной, вторая строка — это предсказание модели, 3-я строка — это основная истина, а последняя строка — это просто изображение, которое дает нам представление о том, что находится в этих 3-х строках. Первые три строки имеют сероватый цвет, поскольку это разница изображений одной и той же сцены, но с двумя разными фильтрами. Добавление потери уверенности в качестве оболочки для моей потери приводит к двум вещам:
  • введению артефакта
  • созданию изображений ярче, чем на самом деле (поэтому яркость изображения изменилась, что нежелательно)


Подробнее здесь: https://stackoverflow.com/questions/790 ... larize-los
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»