Почему удаление одного измерения в тензоре вызывает InvalidArgumentError: Matrix-несовместимый размер? - PullRequest
0 голосов
/ 08 декабря 2018

Часть моих кодов:

reshape_out = Reshape((3, 21, 1), input_shape=(21*3,), name='reshape_to_3_21')(output3d)
drop_out = Lambda(lambda x:x[0:2, :, :], output_shape=(2, 21, 1), name='projection')(reshape_out)
flatten_out = Flatten()(drop_out)

Я получил следующую ошибку:

InvalidArgumentError: Matrix size-incompatible: In[0]: [2,63], In[1]: [42,1024].

Но если удалить

drop_out = Lambda(lambda x:x[0:2, :, :], output_shape=(2, 21, 1), name='projection')(reshape_out)

, все в порядке.Почему?

1 Ответ

0 голосов
/ 08 декабря 2018

Первая ось является осью пакета, и кажется, что вы ошибочно нарезаете ее вместо второй оси:

def drop_output_shape(shp):
    return (shp[0], 2) + shp[2:]

drop_out = Lambda(lambda x: x[:, 0:2, :, :], 
                  output_shape=drop_output_shape, name='projection')(reshape_out)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...