Keras Conv2d Transpose - PullRequest
       19

Keras Conv2d Transpose

0 голосов
/ 04 июня 2018

Я пытаюсь использовать Keras для создания полностью сверточной сети для обработки изображений.Моя начальная сетка (10x25), и я пропускаю ее через пару сверточных слоев, а затем пытаюсь использовать Conv2d Transpose, чтобы попытаться изменить размер изображения до исходных размеров, однако у моего деконволюционного слоя нет выходных данных, или он получен как нет.Вы можете посмотреть на код, чтобы увидеть, что делается.

inputs = Input(shape = (input_shape)) 
conv1 = Conv2D(32, kernel_size=(2, 2), activation='relu', padding ='same')(inputs)
conv1 = Conv2D(32, (2, 2), strides = 1, activation='relu', padding ='same')(conv1)
pool1 = MaxPooling2D(pool_size=(2,2), padding = 'same')(conv1)

conv2 = Conv2D(64, (2, 2), strides = 1, activation='relu', padding ='same')(pool1)
conv2 = Conv2D(64, (2, 2), strides = 1, activation='relu', padding ='same')(conv2)
pool2 = MaxPooling2D(pool_size=(2,2), padding = 'same')(conv2)

 conv3 = Conv2D(128, (2, 2), strides = 1,  activation='relu', padding ='same')(pool2)
 conv3 = Conv2D(128, (2, 2), strides = 1, activation='relu', padding ='same') (conv3)
pool3 = MaxPooling2D(pool_size=(2,2), padding = 'same')(conv3)

deconv1 = Conv2DTranspose(64, kernel_size = (pool3.get_shape().as_list()[1:3]), strides = (2,2), data_format='channels_last')(conv3)
  conv4 = Conv2D(64, (2, 2), strides = 1, activation='relu', padding ='same')(deconv1)

deconv2 = Conv2DTranspose(32, kernel_size = (conv1.get_shape().as_list()[1:3]), strides = (2,2), data_format='channels_last')(conv4)
conv5 = Conv2D(32, (2, 2),strides = 1, activation='relu', padding ='same')(deconv2)

deconv3 =  Conv2DTranspose(1, kernel_size = (input_shape[0:2]), data_format='channels_last')(conv5)
conv6 = Conv2D(1, (1, 1), strides = 1,  activation=act_identity)(deconv3)
...