我想创建一个简单的Keras神经网络,该神经网络接受尺寸为(rows, columns) = (n, m)
的输入矩阵,将矩阵展平为尺寸为(n*m, 1)
,通过多个任意层发送展平的矩阵,然后在最后一层中,再次释放该矩阵到(n, m)
的维度,然后释放该最终矩阵作为输出。
我遇到的问题是,我没有在keras.io页上找到有关Unflatten层的任何文档,并且我想知道是否有这样一个看似标准的通用层没有原因不存在。有没有更自然,更轻松的方法来完成我的建议?
答案 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)