Как выполнить Деконволюцию / ТрансКонволюцию в Керасе? - PullRequest
0 голосов
/ 04 января 2019

структура моей модели выглядит следующим образом:

Слой (тип) Выходная форма Параметр #

conv2d_31 (Conv2D)           (None, 40, 40, 16)        160       
_________________________________________________________________
max_pooling2d_4 (MaxPooling2 (None, 20, 20, 16)        0         
_________________________________________________________________
conv2d_32 (Conv2D)           (None, 20, 20, 32)        12832     
_________________________________________________________________
max_pooling2d_5 (MaxPooling2 (None, 10, 10, 32)        0         
_________________________________________________________________
conv2d_33 (Conv2D)           (None, 10, 10, 64)        100416    
_________________________________________________________________
max_pooling2d_6 (MaxPooling2 (None, 5, 5, 64)          0         
_________________________________________________________________
flatten_2 (Flatten)          (None, 1600)              0         
_________________________________________________________________
dense_3 (Dense)              (None, 1024)              1639424   
_________________________________________________________________
dropout_2 (Dropout)          (None, 1024)              0         
_________________________________________________________________
dense_4 (Dense)              (None, 1)                 1025      
_________________________________________________________________
activation_52 (Activation)   (None, 1)                 0      

Я хочу применить деконволюцию к любому конкретному слою и отобразить результаты.Я подумал, что мне следует использовать слой Conv2DTranspose, но я не могу понять аргументы, связанные с ним.Пожалуйста, помогите

1 Ответ

0 голосов
/ 04 января 2019

Обратите внимание на номенклатуру.

Деконволюция не транспонированная свертка, хотя термины широко используются взаимозаменяемо.Правильный термин, который нужно использовать, - транспонированная свертка .Вот почему слой «деконволюции» даже не существует в Keras, а Conv2DTransposed существует.

Вы можете попробовать построить модель глубокого обучения с помощью Model API вместо SequentialAPI .

Таким образом, вы можете добавить Conv2DTransposed к определенному слою и увидеть результат транспонированной свертки.

Вы можете просматривать транспонированный слой свертки как повышающую дискретизациюслой.В первом имеются обучаемые параметры, в то время как последний только удваивает / утраивает и т. Д. Размер изображения посредством интерполяции.

Ознакомьтесь с документацией Keras для Функциональный API (Model API):https://keras.io/models/model/

Ознакомьтесь с документацией Keras для транспонированной свертки: https://keras.io/layers/convolutional/

Проверьте эту учетную запись github, чтобы визуально понять транспонированную свертку: https://github.com/vdumoulin/conv_arithmetic

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...