Я хотел бы реализовать потерю CRF в TensorFlow. Скажем, мой код выглядит следующим образом:
# input to the model and ground truth segmentation mask
image = tf.placeholder(tf.float32, [None, N, M, 1])
gt_mask = tf.placeholder(tf.float32, [None, N, M, n_classes])
# prediction:
pred_mask = my_cnn(image)
pred_mask = tf.nn.softmax(pred_mask) # has shape = [None, N, M, n_classes]
# compute CRF loss
crf_loss = ... ?
В частности, формулировка crf_loss
должна быть дифференцируемой, чтобы я мог использовать SGD для обучения модели.
Я нашел эту статью, в которой говорится, что мы можем использовать квадратичную релаксацию модели Поттса (уравнение 4, стр. 4). Любая идея о том, как реализовать все это в TensorFlow в моем примере?
Спасибо за вашу помощь:)