【发布时间】:2020-01-29 16:56:29
【问题描述】:
我有大小为 (256,256) 的图像被分割成 10 个类别(0 到 9)。
我想在这个数据集上训练一个语义分割网络,但只想把它当作一个 9 类问题(即忽略类2)。
我的问题是是否有类似掩码的东西我可以解析其中未评估损失的地方。
我目前的做法是: 我是在one hot encoding之前修改图片的对应区域,即:
# change any pixel with value 2 to 255
target = tf.where(target==2,tf.constant(255,shape=(256, 256), dtype=tf.uint8),target)
# change 3 -> 2, 4 -> 3, ..., 9 -> 8
for i in range(3,10):
target = tf.where(target==i,tf.constant(i-1,shape=(256, 256), dtype=tf.uint8),target)
# do one hot
out = tf.one_hot(target,9)
并训练一个具有 9 类输出的网络。曾经具有值2 的所有像素
单热编码为[0,0,0,0,0,0,0,0,0],不应计入损失函数(categorical_crossentropy)。无论如何,我不确定这是否会在我们除以像素数(常数 256^2)时产生问题,并且如果图像的大部分被零向量标记,这将减少其他标签的影响。
我正在使用tf.keras 和Tensorflow 2.0
【问题讨论】:
标签: python tensorflow tensorflow2.0 tf.keras