如何在 keras 中将 (None,1024) 张量堆叠为 (None,7,7,1024) 张量?
How to stack (None,1024) tensor into (None,7,7,1024) tensor in keras?
我有一个形状为 (None,1024)
的张量 A
,我想将其重复 49 次以生成形状为 (None,7,7,1024)
的矩阵张量。每个 (,1024)
向量都是张量 A
.
的副本
我该怎么做?
我试过了
A = K.stack([A,A,A,A,A,A,A])
A = K.stack([A,A,A,A,A,A,A])
但这给了我一个形状为 (7, 7, None, 1024)
的张量
首先使用RepeatVector
layer to repeat it for 49 times, then use Reshape
层根据需要重新整形:
r_A = RepeatVector(49)(A)
rsh_A = Reshape((7, 7, -1))(r_A)
或者,您可以定义一个基于后端函数的函数并将其包装在 Lambda
层中:
from keras import backend as K
def rsh(x):
y = K.repeat(x, 49)
return K.reshape(y, (-1, 7, 7, K.int_shape(y)[-1]))
rsh_A = Lambda(rsh)(A)
我有一个形状为 (None,1024)
的张量 A
,我想将其重复 49 次以生成形状为 (None,7,7,1024)
的矩阵张量。每个 (,1024)
向量都是张量 A
.
我该怎么做?
我试过了
A = K.stack([A,A,A,A,A,A,A])
A = K.stack([A,A,A,A,A,A,A])
但这给了我一个形状为 (7, 7, None, 1024)
首先使用RepeatVector
layer to repeat it for 49 times, then use Reshape
层根据需要重新整形:
r_A = RepeatVector(49)(A)
rsh_A = Reshape((7, 7, -1))(r_A)
或者,您可以定义一个基于后端函数的函数并将其包装在 Lambda
层中:
from keras import backend as K
def rsh(x):
y = K.repeat(x, 49)
return K.reshape(y, (-1, 7, 7, K.int_shape(y)[-1]))
rsh_A = Lambda(rsh)(A)