使用Keras和GpuElemwise错误进行自动图像修复

我有一个Keras模型 =>

输入:灰度图像:(1, 224, 224)

输出:RGB图像:(3, 224, 224)

我想通过输入灰度图像并获得RGB图像来预测像素颜色。我尝试在Keras中构建一个网络,大体上类似于这个(用Tensorflow制作的)网络。

这是模型代码:

first_input = Input(batch_shape=(None, 1, 224, 224))conv0_1_3 = Convolution2D(3, 3, 3, activation='relu', name='conv0_1_3', border_mode='same')(first_input)conv1_1_64 = Convolution2D(64, 3, 3, activation='relu', name='conv1_1', border_mode='same')(conv0_1_3)conv1_2_64 = Convolution2D(64, 3, 3, activation='relu', name='conv1_2', border_mode='same')(conv1_1_64)conv1_2_64 = MaxPooling2D((2, 2))(conv1_2_64)conv2_1_128 = Convolution2D(128, 3, 3, activation='relu', name='conv2_1', border_mode='same')(conv1_2_64)conv2_2_128 = Convolution2D(128, 3, 3, activation='relu', name='conv2_2', border_mode='same')(conv2_1_128)conv2_2_128 = MaxPooling2D((2, 2))(conv2_2_128)conv3_1_256 = Convolution2D(256, 3, 3, activation='relu', name='conv3_1', border_mode='same')(conv2_2_128)conv3_2_256 = Convolution2D(256, 3, 3, activation='relu', name='conv3_2', border_mode='same')(conv3_1_256)conv3_3_256 = Convolution2D(256, 3, 3, activation='relu', name='conv3_3', border_mode='same')(conv3_2_256)conv3_3_256 = MaxPooling2D((2, 2))(conv3_3_256)conv4_1_512 = Convolution2D(512, 3, 3, activation='relu', name='conv4_1', border_mode='same')(conv3_3_256)conv4_2_512 = Convolution2D(512, 3, 3, activation='relu', name='conv4_2', border_mode='same')(conv4_1_512)conv4_3_512 = Convolution2D(512, 3, 3, activation='relu', name='conv4_3', border_mode='same')(conv4_2_512)conv4_3_512 = MaxPooling2D((2, 2))(conv4_3_512)residual1 = BatchNormalization(axis=1, name='batch1')(conv4_3_512)residual1 = Convolution2D(256, 3, 3, activation='relu', name='residual1', border_mode='same')(residual1)residual1 = UpSampling2D(name='upsample1')(residual1)conv3_3_256_batch_norm = BatchNormalization(axis=1, name='batch2')(conv3_3_256)merge1 = merge((conv3_3_256_batch_norm, residual1), mode='concat', name='merge1', concat_axis=0)residual2 = Convolution2D(128, 3, 3, activation='relu', name='residual2', border_mode='same')(merge1)residual2 = UpSampling2D(name='upsample2')(residual2)conv2_2_128_batch_norm = BatchNormalization(axis=1, name='batch3')(conv2_2_128)merge2 = merge((conv2_2_128_batch_norm, residual2), mode='concat', name='merge2', concat_axis=0)residual3 = Convolution2D(64, 3, 3, activation='relu', name='residual3', border_mode='same')(merge2)residual3 = UpSampling2D(name='upsample3')(residual3)conv1_2_64_batch_norm = BatchNormalization(axis=1, name='batch4')(conv1_2_64)merge3 = merge((conv1_2_64_batch_norm, residual3), mode='concat', name='merge3', concat_axis=0)residual4 = Convolution2D(3, 3, 3, activation='relu', name='residual4', border_mode='same')(merge3)residual4 = UpSampling2D(name='upsample4')(residual4)conv0_1_3_batch_norm = BatchNormalization(axis=1, name='batch5')(conv0_1_3)merge4 = merge((conv0_1_3_batch_norm, residual4), mode='concat', name='merge4', concat_axis=0)residual5 = Convolution2D(3, 1, 1, activation='relu', name='residual5', border_mode='same')(merge4)model = Model(input=first_input, output=residual5)

这是模型摘要:

Layer (type)                     Output Shape          Param #     Connected to                     ====================================================================================================input_1 (InputLayer)             (None, 1, 224, 224)   0                                            ____________________________________________________________________________________________________conv0_1_3 (Convolution2D)        (None, 3, 224, 224)   30          input_1[0][0]                    ____________________________________________________________________________________________________conv1_1 (Convolution2D)          (None, 64, 224, 224)  1792        conv0_1_3[0][0]                  ____________________________________________________________________________________________________conv1_2 (Convolution2D)          (None, 64, 224, 224)  36928       conv1_1[0][0]                    ____________________________________________________________________________________________________maxpooling2d_1 (MaxPooling2D)    (None, 64, 112, 112)  0           conv1_2[0][0]                    ____________________________________________________________________________________________________conv2_1 (Convolution2D)          (None, 128, 112, 112) 73856       maxpooling2d_1[0][0]             ____________________________________________________________________________________________________conv2_2 (Convolution2D)          (None, 128, 112, 112) 147584      conv2_1[0][0]                    ____________________________________________________________________________________________________maxpooling2d_2 (MaxPooling2D)    (None, 128, 56, 56)   0           conv2_2[0][0]                    ____________________________________________________________________________________________________conv3_1 (Convolution2D)          (None, 256, 56, 56)   295168      maxpooling2d_2[0][0]             ____________________________________________________________________________________________________conv3_2 (Convolution2D)          (None, 256, 56, 56)   590080      conv3_1[0][0]                    ____________________________________________________________________________________________________conv3_3 (Convolution2D)          (None, 256, 56, 56)   590080      conv3_2[0][0]                    ____________________________________________________________________________________________________maxpooling2d_3 (MaxPooling2D)    (None, 256, 28, 28)   0           conv3_3[0][0]                    ____________________________________________________________________________________________________conv4_1 (Convolution2D)          (None, 512, 28, 28)   1180160     maxpooling2d_3[0][0]             ____________________________________________________________________________________________________conv4_2 (Convolution2D)          (None, 512, 28, 28)   2359808     conv4_1[0][0]                    ____________________________________________________________________________________________________conv4_3 (Convolution2D)          (None, 512, 28, 28)   2359808     conv4_2[0][0]                    ____________________________________________________________________________________________________maxpooling2d_4 (MaxPooling2D)    (None, 512, 14, 14)   0           conv4_3[0][0]                    ____________________________________________________________________________________________________batch1 (BatchNormalization)      (None, 512, 14, 14)   1024        maxpooling2d_4[0][0]             ____________________________________________________________________________________________________residual1 (Convolution2D)        (None, 256, 14, 14)   1179904     batch1[0][0]                     ____________________________________________________________________________________________________upsample1 (UpSampling2D)         (None, 256, 28, 28)   0           residual1[0][0]                  ____________________________________________________________________________________________________batch2 (BatchNormalization)      (None, 256, 28, 28)   512         conv3_3[0][0]                    ____________________________________________________________________________________________________merge1 (Merge)                   (None, 512, 28, 28)   0           batch2[0][0]                     upsample1[0][0]                  ____________________________________________________________________________________________________residual2 (Convolution2D)        (None, 128, 28, 28)   589952      merge1[0][0]                     ____________________________________________________________________________________________________upsample2 (UpSampling2D)         (None, 128, 56, 56)   0           residual2[0][0]                  ____________________________________________________________________________________________________batch3 (BatchNormalization)      (None, 128, 56, 56)   256         conv2_2[0][0]                    ____________________________________________________________________________________________________merge2 (Merge)                   (None, 256, 56, 56)   0           batch3[0][0]                     upsample2[0][0]                  ____________________________________________________________________________________________________residual3 (Convolution2D)        (None, 64, 56, 56)    147520      merge2[0][0]                     ____________________________________________________________________________________________________upsample3 (UpSampling2D)         (None, 64, 112, 112)  0           residual3[0][0]                  ____________________________________________________________________________________________________batch4 (BatchNormalization)      (None, 64, 112, 112)  128         conv1_2[0][0]                    ____________________________________________________________________________________________________merge3 (Merge)                   (None, 128, 112, 112) 0           batch4[0][0]                     upsample3[0][0]                  ____________________________________________________________________________________________________residual4 (Convolution2D)        (None, 3, 112, 112)   3687        merge3[0][0]                     ____________________________________________________________________________________________________upsample4 (UpSampling2D)         (None, 3, 224, 224)   0           residual4[0][0]                  ____________________________________________________________________________________________________batch5 (BatchNormalization)      (None, 3, 224, 224)   6           conv0_1_3[0][0]                  ____________________________________________________________________________________________________merge4 (Merge)                   (None, 6, 224, 224)   0           batch5[0][0]                     upsample4[0][0]                  ____________________________________________________________________________________________________residual5 (Convolution2D)        (None, 3, 224, 224)   21          merge4[0][0]                     ====================================================================================================Total params: 9,164,694

回答:

Related Posts

Keras Dense层输入未被展平

这是我的测试代码: from keras import…

无法将分类变量输入随机森林

我有10个分类变量和3个数值变量。我在分割后直接将它们…

如何在Keras中对每个输出应用Sigmoid函数?

这是我代码的一部分。 model = Sequenti…

如何选择类概率的最佳阈值?

我的神经网络输出是一个用于多标签分类的预测类概率表: …

在Keras中使用深度学习得到不同的结果

我按照一个教程使用Keras中的深度神经网络进行文本分…

‘MatMul’操作的输入’b’类型为float32,与参数’a’的类型float64不匹配

我写了一个简单的TensorFlow代码,但不断遇到T…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注