我应该使用哪个损失函数来解决rgb问题?

问题描述 投票:0回答:1

我正在制作一个可以拍摄灰度图像并返回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个回答
0
投票

尽管遇到一些罕见的分类情况,但当您遇到回归问题时,MSE将主要完成该工作。

如果我正确理解了模型的目的,我相信对您来说正确的损失函数将是二进制交叉熵或分类交叉熵(用于多类分类)。

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

更新:您可以看到此blog post,其中涵盖了AutoEncoder CNN模型。

© www.soinside.com 2019 - 2024. All rights reserved.