Использование маскирующего слоя Keras с двумерными свертками (Conv2D) - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь спроектировать нейронную сеть, включающую зависящий от времени ввод различной длины, и в настоящее время я использую маскирующий слой. Эта сеть хорошо работала с TensorFlow версии 1.9.0, но после обновления до версии 1.11.0 я получаю следующую ошибку:

Слой conv2d_1 не поддерживает маскирование, но был передан input_mask: Tensor ("cnn1 / Reshape_2: 0", shape = (?, 81, 81), dtype = bool)

Есть идеи, как решить эту проблему?

Я использую следующий код:

from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D, \
    TimeDistributed, Dense, Masking, Activation, BatchNormalization

model= Sequential()
# first layer
model.add(TimeDistributed(Masking(0., input_shape=(81,81,3)),
                                  input_shape=(None,81,81,3), name='mask'))
# CNN layers
model.add(TimeDistributed(Conv2D(filters=10,
                                 kernel_size=5,
                                 strides=1,
                                 padding='same'),
                         name='cnn1'))

model.add(Activation('relu', name='relu1'))
model.add(BatchNormalization())
model.add(TimeDistributed(MaxPooling2D(pool_size=(2, 2))))

# output layer
model.add(TimeDistributed(Dense(3, name='output')))
model.add(Activation('softmax'))

# compilation
model.compile(loss='categorical_crossentropy')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...