【发布时间】:2019-07-14 01:22:57
【问题描述】:
我正在训练 Deeplab v3,通过在三个类中制作自定义数据集,包括背景
那么,我的类是背景,熊猫,瓶子,有1949张图片。
我正在使用 moblienetv2 模型
和 segmentation_dataset.py 已修改如下。
_MYDATA_INFORMATION = DatasetDescriptor(
splits_to_sizes={
'train': 975, # num of samples in images/training
'trainval': 1949,
'val': 974, # num of samples in images/validation
},
num_classes=3,
ignore_label=0,
)
train.py修改如下。
flags.DEFINE_boolean('initialize_last_layer', False,
'Initialize the last layer.')
flags.DEFINE_boolean('last_layers_contain_logits_only', True,
'Only consider logits as last layers or not.')
train_utils.py 未被修改。
not_ignore_mask = tf.to_float(tf.not_equal(scaled_labels, ignore_label)) * loss_weight
我得到了一些结果,但不是完美的。
例如熊猫和瓶子的面具颜色相同或不同
我想要的结果是红色的熊猫和绿色的瓶子
所以,我判断是重量有问题。
根据其他人的问题,train_utils.py配置如下
irgore_weight = 0
label0_weight =1
label1_weight = 10
label2_weight = 15
not_ignore_mask =
tf.to_float(tf.equal(scaled_labels, 0)) * label0_weight +
tf.to_float(tf.equal(scaled_labels, 1)) * label1_weight +
tf.to_float(tf.equal(scaled_labels, 2)) * label2_weight +
tf.to_float(tf.equal(scaled_labels, ignore_label)) * irgore_weight
tf.losses.softmax_cross_entropy(
one_hot_labels,
tf.reshape(logits, shape=[-1, num_classes]),
weights=not_ignore_mask,
scope=loss_scope)
我有一个问题。
权重的标准是什么?
我的数据集包含以下内容。
它是自动生成的,所以我不确切知道哪个更多,但它的数量相似。
另外,我使用的是 Pascal 的颜色映射类型。
这是第一个黑色背景,第二个红色第三个绿色。
我想准确地将熊猫指定为红色,将瓶子指定为绿色。我该怎么办?
【问题讨论】:
标签: tensorflow dataset image-segmentation tensorflow-datasets deeplab