Снятие слоя в Керасе - PullRequest
       22

Снятие слоя в Керасе

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

Я хотел бы создать простую нейронную сеть Keras, которая принимает входную матрицу измерения (rows, columns) = (n, m), выравнивает матрицу до измерения (n*m, 1), отправляет сглаженную матрицу через несколько произвольных слоев и в конечном слоееще раз раскрывает матрицу до размера (n, m) перед тем, как выпустить эту окончательную матрицу в качестве вывода.

Проблема, с которой я сталкиваюсь, заключается в том, что я не нашел никакой документации по слою Unflatten на странице keras.io , и мне интересно, есть ли причина, по которой такиеказалось бы, стандартного слоя общего пользования не существует.Есть ли более естественный и простой способ сделать то, что я предлагаю?

1 Ответ

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

Для этой цели вы можете использовать слой Reshape.Он принимает желаемую выходную форму в качестве аргумента и изменяет входной тензор в эту форму.Например:

from keras.layers import Reshape

rsh_inp = Reshape((n*m, 1))(inp)  # if don't want the last axis with dimension 1, you can also use Flatten layer

# rsh_inp goes through a number of arbitrary layers ...

# reshape back the output
out = Reshape((n,m))(out_rsh_inp)
...