凯拉斯的平整层

时间:2018-11-16 00:15:49

标签: python keras neural-network reshape flatten

我想创建一个简单的Keras神经网络,该神经网络接受尺寸为(rows, columns) = (n, m)的输入矩阵,将矩阵展平为尺寸为(n*m, 1),通过多个任意层发送展平的矩阵,然后在最后一层中,再次释放该矩阵到(n, m)的维度,然后释放该最终矩阵作为输出。

我遇到的问题是,我没有在keras.io页上找到有关Unflatten层的任何文档,并且我想知道是否有这样一个看似标准的通用层没有原因不存在。有没有更自然,更轻松的方法来完成我的建议?

1 个答案:

答案 0 :(得分:1)

您可以为此目的使用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)