Tensorflow 为什么在通过我的去噪模型传递彩色图像后,输出为RGB格式的黑白图像?
所以我想建立一个模型去噪图像。但在训练之后,它总是以RGB格式输出一个类似灰度的图像。我尝试了许多损失函数,从复杂的mssim、psnr到简单的mae,但仍然得到了相同的结果 我试图实现这样的东西- 类似于对称跳过自动编码器 i、 e 这是我的模型Tensorflow 为什么在通过我的去噪模型传递彩色图像后,输出为RGB格式的黑白图像?,tensorflow,image-processing,keras,deep-learning,conv-neural-network,Tensorflow,Image Processing,Keras,Deep Learning,Conv Neural Network,所以我想建立一个模型去噪图像。但在训练之后,它总是以RGB格式输出一个类似灰度的图像。我尝试了许多损失函数,从复杂的mssim、psnr到简单的mae,但仍然得到了相同的结果 我试图实现这样的东西- 类似于对称跳过自动编码器 i、 e 这是我的模型 inputs = Input(shape=(512, 512, 3)) layer1 = Conv2D(3, strides = (2,2),kernel_size=4,padding='same', activation='relu', in
inputs = Input(shape=(512, 512, 3))
layer1 = Conv2D(3, strides = (2,2),kernel_size=4,padding='same', activation='relu', input_shape=(512, 512, 3))(inputs)
layer2 = Conv2D(3, strides =(2,2),kernel_size=4,padding='same', activation='relu')(layer1)
layer3 = Conv2D(3, strides =(2,2),kernel_size=4,padding='same', activation='relu')(layer2)
layer4 = Conv2D(3, strides = (2,2),kernel_size=4,padding='same', activation='relu')(layer3)
layer5 = Conv2DTranspose(3,strides=(2, 2),kernel_size = 4,padding='same',activation='relu') (layer4)
merge1 = maximum([layer3,layer5])/2
layer6 = Conv2DTranspose(3,strides=(2, 2),kernel_size = 4,padding='same',activation='relu') (layer5)
merge2 = maximum([layer2,layer6])/2
layer7 = Conv2DTranspose(3,strides=(2, 2),kernel_size = 4,padding='same',activation='relu') (merge2)
merge3 = Add()([layer1,layer7])/2
layer8 = Conv2DTranspose(3,strides=(2, 2),kernel_size = 4,padding='same',activation='relu') (merge3)
model = Model(inputs=inputs, outputs=layer8)
请帮助我解决此问题或其他相关建议。您的过滤器太少。过滤器应随着深度的增加而增加。将它们保持为2的幂,例如32、64、128等等
您的内核大小是4x4。为什么?通常使用的内核是3x3或5x5。偶数核比奇数核更不善于学习。尝试使用3x3,如果3x3不起作用,则使用5x5。我尝试使用更多过滤器,结果相同。我也试过用5*5,结果还是灰阶的。