В Keras, как использовать слой Reshape с размером None? - PullRequest
0 голосов
/ 23 ноября 2018

В моей модели слой имеет форму [None, None, 40, 64].Я хочу изменить это в [None, None, 40*64].Однако, если я просто сделаю следующее:

reshaped_layer = Reshape((None, None, 40*64))(my_layer)

Выдает ошибку с жалобой на то, что None values not supported.

(Просто чтобы быть ясно, это не tf.keras, это простоKeras).

1 Ответ

0 голосов
/ 23 ноября 2018

Прежде всего, аргумент, который вы передаете слою Reshape, является желаемой формой одного образца в пакете, а не всей партии семплов.Так как каждый из образцов в пакете является 3D-тензором, аргумент должен также учитывать только этот 3D-тензор (т.е. исключая ось пакета).

Во-вторых, вы можете использовать -1 в качестве формы толькоодна осьОн говорит слою Reshape автоматически выводить форму этой оси на основе формы других предоставленных вами осей.Итак, учитывая эти два момента, это будет:

reshaped_out = Reshape((-1, 40*64))(layer_out)
...