Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 为什么在通过我的去噪模型传递彩色图像后,输出为RGB格式的黑白图像?_Tensorflow_Image Processing_Keras_Deep Learning_Conv Neural Network - Fatal编程技术网

Tensorflow 为什么在通过我的去噪模型传递彩色图像后,输出为RGB格式的黑白图像?

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

所以我想建立一个模型去噪图像。但在训练之后,它总是以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', 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,结果还是灰阶的。