【问题标题】:Which loss function I should use for grayscale to rgb problem?对于灰度到 rgb 问题,我应该使用哪个损失函数?
【发布时间】:2020-06-06 16:33:38
【问题描述】:

我正在制作一个采用灰度图像并返回 rgb 图像的模型。现在我使用 MSE 作为损失函数,但我认为这不是一个好的选择。在这类问题中使用哪种损失函数更好?

我的模型是 AutoEnconder。我正在使用以下函数来构建它:

def conv2d(layer_input, filters, f_size=3, bn=True, strides_ = 2):
    d = Conv2D(filters, kernel_size=f_size, padding='same', activation='relu')(layer_input)
    d = AveragePooling2D(pool_size=(2,2),strides=(2,2))(d)
    d = LeakyReLU(alpha=0.2)(d)
    if bn:
        d = BatchNormalization(momentum=0.9)(d)
    return d

def deconv2d(layer_input, skip_input, filters, f_size=4, dropout_rate=0):
    u = UpSampling2D(size=2)(layer_input)
    u = Conv2D(filters, kernel_size=f_size, strides=1, padding='same')(u)
    u = LeakyReLU(alpha=0.2)(u)

    if dropout_rate:
        u = Dropout(dropout_rate)(u)
    u = BatchNormalization(momentum=0.8)(u)
    u = Concatenate()([u, skip_input])
    return u

【问题讨论】:

    标签: python-3.x tensorflow keras deep-learning conv-neural-network


    【解决方案1】:

    MSE 将主要在您面临回归问题时完成这项工作,尽管它可能适合一些罕见的分类情况。

    如果我正确理解您的模型的目的,我相信适合您的损失函数是二元交叉熵或分类交叉熵(用于多类分类)。

    查看this Keras documentation 了解更多具体信息。

    更新:你可以看到这个blog post,它涵盖了 AutoEncoder CNN 模型。

    【讨论】:

    • 为什么是二元或分类交叉熵?这不是分类问题。我的模型应该将灰度图像着色为 rgb 图像
    • See this blog。所有答案
    猜你喜欢
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-10
    相关资源
    最近更新 更多