【发布时间】:2021-03-23 21:01:52
【问题描述】:
所以我看一下图像->蒙版问题。在 256x256 图像上具有大约三个 2 像素宽 x 100 像素以上长度的线条(曲线)。我想最大化
- 行长
- 线薄结构
- 线精度
同时。要设计一个专注于细长线的损失吗?
所以目前我尝试:
def lines_loss(y_true, y_pred):
mask_lines = K.greater_equal(y_true, 0.95)
mask_empty = K.less(y_true, 0.95)
lines_masked = tf.boolean_mask(y_pred - y_true, mask_lines)
empty_masked = tf.boolean_mask(y_pred - y_true, mask_empty)
base = K.mean(K.square(lines_masked)) + K.mean(K.square(empty_masked))
loss_value = base
return loss_value
它保持相对平衡,但网络似乎过度训练太快(验证损失 >> 训练损失)并产生像雨一样的图像 - 所有的线都很短而且它们太多(想象一下雨滴)。示例:
必须只有 3 长行:
【问题讨论】:
-
能否提供更多信息,例如,您的模型代码、一些输入、模型的输出和预期结果?
-
如果我是你,我会研究 Dice Loss,它通常非常适合边缘检测/分割。但是,如果没有更多用例示例,很难告诉您更多信息。
-
如果对你有用,你能接受答案吗?
标签: python machine-learning keras neural-network loss