【问题标题】:How to stack (None,1024) tensor into (None,7,7,1024) tensor in keras?如何在 keras 中将 (None,1024) 张量堆叠到 (None,7,7,1024) 张量中?
【发布时间】:2019-04-19 15:26:36
【问题描述】:

我有一个形状为(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)

【问题讨论】:

    标签: python tensorflow keras tensor


    【解决方案1】:

    首先使用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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-11
      • 2021-12-16
      • 1970-01-01
      • 2021-12-25
      • 2019-09-29
      • 2020-03-05
      • 2019-01-03
      • 1970-01-01
      相关资源
      最近更新 更多