我有一个形状为A
的张量(None,1024)
,我想重复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)
形状的张量
答案 0 :(得分:2)
首先使用RepeatVector
层将其重复49次,然后根据需要使用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)