Индексирование выходной сетки CNN в функции потерьPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Индексирование выходной сетки CNN в функции потерь

Сообщение Anonymous »

У меня есть модель CNN, построенная в тензорном потоке, которая выводит сетку с формой (batch_size,H,W,1).
Я выполняю функцию активации сигмовидной формы для каждой ячейки в Grid.
мой y_true является тензорным с [ColIndex, RowIndex, Outcome], что означает, что для каждого обучающего экземпляра у меня есть ровно 1 ячейка с выходным значением.
Я хочу рассчитать потери при обучении только для 1-й ячейки в y_true, то есть мне нужно проиндексировать выходные данные сетки в эту 1-ю ячейку и вычислить логарифмические потери, и использовать эту 1 потеря клеток при обучении.
Я искал решения, но не нашел его. В настоящее время мне удалось создать потерю, которую модель тренирует, но потери почти всегда равны 0, и я получите странные результаты.
моя потеря функция:

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

def custom_target_location_loss(y_true, y_pred):

# Extract column indices, row indices, and values
col_indices = tf.cast(y_true[:,0], tf.int32)  # Column indices
row_indices = tf.cast(y_true[:,1], tf.int32)  # Row indices
values = tf.cast(y_true[:, 2], tf.float32)     # Binary labels (0 or 1)

batch_size = tf.shape(y_pred)[0]
batch_indices = tf.range(batch_size)
channel_indices = tf.zeros_like(batch_indices, dtype=tf.int32)
indices = tf.stack([batch_indices,row_indices, col_indices,channel_indices], axis=1)

y_pred_cell = tf.gather_nd(y_pred, indices)

loss = tf.keras.losses.binary_crossentropy(values, y_pred_cell)

# Return the mean loss across the batch
return tf.reduce_mean(loss)
я что-то упустил?

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

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Индексирование выходной сетки CNN в функции потерь
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Разница между входной формой для 1D CNN, 2D CNN и 3D CNN
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Объединение пользовательской функции потерь с предопределенной функцией потерь (Dice и Focal) для обучения DeeplabV3Plus
    Anonymous » » в форуме Python
    0 Ответы
    51 Просмотры
    Последнее сообщение Anonymous
  • Функция потерь не уменьшается в модели CNN?
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Объединение 1D-CNN и 2D-CNN
    Anonymous » » в форуме Python
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous

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