Как дополнить карты объектов до максимального пула? - PullRequest
1 голос
/ 21 июня 2019

Я пытаюсь кодировать автоэнкодер, который принимает тензор формы (Нет, 194, 434, 626, 3). Проблема в том, что после maxpool размеры становятся нечетными, и следующий maxpool округляет их. При декодировании с использованием upsample, я не могу получить выходное измерение таким же, как входное измерение. Я думал, что заполнение перед maxpooling может помочь, но tf.pad не влияет на тензоры.

x = Activation('relu')(x)
print(x.shape)
tf.pad(x, [[0,0],[0,1],[0,1],[0,1],[0,0]], "CONSTANT")
print(x.shape)
encoded = MaxPooling3D(pool_size=(2, 2, 2), padding='same')(x)
print(x.shape)

(?, 97, 217, 313, 8)

(?, 97, 217, 313, 8)

(?, 49, 109, 157, 8)

Что я делаю не так? Каковы лучшие методы повышения дискретизации при декодировании?

1 Ответ

0 голосов
/ 21 июня 2019

tf.pad не работает на месте.Вам необходимо присвоить результат.

x = tf.pad(x, [[0,0],[0,1],[0,1],[0,1],[0,0]], "CONSTANT")

...