Я реализую версию Keras для задачи глубокого обучения, в которой мне нужно обнаружить полосы, т.е. белую краску, определяющую полосы на данной дороге.Для этого я сгенерировал 'logits' в качестве результата созданной мной модели декодера, которая получается из
#Decoder
score_5 = Conv2D(64, kernel_size = (1, 1), strides = (1,1), padding='same', use_bias = False)(max_pool5)
deconv = Conv2DTranspose(64, kernel_size = (4,4), strides=(2,2), use_bias = False)(score_5)
score_4 = Conv2D(64, kernel_size = (1, 1), strides = (1,1), padding='same', use_bias = False)(max_pool4)
fused = keras.layers.Add()([score_4, deconv])
deconv = Conv2DTranspose(64, kernel_size = (4,4), strides=(2,2), use_bias = False)(fused)
score_3 = Conv2D(64, kernel_size = (1, 1), strides = (1,1), padding='same', use_bias = False)(max_pool3)
fused = keras.layers.Add()([score_3, deconv])
deconv_final = Conv2DTranspose(64, kernel_size = (16,16), strides=(8,8), use_bias = False)(fused)
score_final = Conv2D(2, kernel_size = (1, 1), strides = (1,1), padding='same', use_bias = False)(deconv_final)
Теперь я хочу скомпилировать модель, используя функцию API model.compile в Keras compile(optimizer, loss=None, metrics=None, loss_weights=None, sample_weight_mode=None, weighted_metrics=None, target_tensors=None)
для подгонки данных и использования эквивалента Keras для следующей функции потери тензорного потока:
binary_segmenatation_loss = tf.losses.sparse_softmax_cross_entropy(
labels= binary_label, logits= score_final, weights=inverse_weights)
где метки - это двоичные данные наземной истинности с полосами в виде белого и остальных пикселей изображения в черном цвете, но я не уверенкак использовать то же самое в керасе т.е. потерю логитов?