Как добавить Cov2D в конце GRU в керасе - PullRequest
0 голосов
/ 07 июня 2019

Я пытаюсь запустить модель с приложением conv2d в конце gru. Gru вернет все последовательности, что означает, что вывод gru должен быть партией из 28 * 28 матриц. Затем я хочу ввести их в conv2d, так как conv2d нужен 4d-тензор, я изменяю тензор в слое, но появляется ошибка.

Так что я думаю, что есть некоторые проблемы со слоем изменения формы, но поиск в сети, кажется, не удовлетворен. Может кто-нибудь дать несколько советов, большое спасибо.

def build_model(input_shape, num_classes):
    x = Input(input_shape)
    x = Embedding(10000, 64, input_length=28)(x)
    forw = GRU(14, return_sequences=True)(x)
    back = GRU(14, return_sequences=True, go_backwards=True)(x)
    y = Concatenate(-1)([forw, back])
    y = Reshape((None,28,28,1))(y)
    y = Conv2D(32, (3, 3), activation='relu')(y)
    y = MaxPooling2D((2,2))(y)
    y = Conv2D(64, (3, 3), activation='relu')(y)
    y = MaxPooling2D((2,2))(y)
    y = Flatten()(y)
    y = Dense(num_classes, activation='softmax')(y)
    return Model(x,y)


File "/usr/local/lib/python2.7/dist-packages/keras/layers/core.py", line 401, in call
    return K.reshape(inputs, (K.shape(inputs)[0],) + self.target_shape)
  File "/usr/local/lib/python2.7/dist-packages/keras/backend/tensorflow_backend.py", line 1969, in reshape
    return tf.reshape(x, shape)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/ops/gen_array_ops.py", line 7179, in reshape
    "Reshape", tensor=tensor, shape=shape, name=name)
  File "/usr/local/lib/python2.7/dist-packages/tensorflow/python/framework/op_def_library.py", line 529, in _apply_op_helper
    (input_name, err))
ValueError: Tried to convert 'shape' to a tensor and failed. Error: None values not supported.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...