【问题标题】:Appending tensors in Keras在 Keras 中附加张量
【发布时间】:2018-07-18 17:58:08
【问题描述】:

我的 keras 模型中有一个 for 循环,如下所示:

 for t in range(Ty):
   ....
   ....
   ....

   out = Dense(num_dec_tokens, activation='softmax')(x)  # out.shape = (?, num_dec_tokens) 

有没有一种方法可以在不使用列表的情况下将张量“输出”附加到 Ty 次(例如使用 lambda 层),即不使用:outputs = [], then ... outputs.append(出)?

如果是这样,有没有办法可以将附加的张量更改为 (?, Ty, num_dec_tokens) 而不是 (Ty, ?, num_dec_tokens) 的形状?

谢谢...

【问题讨论】:

    标签: keras keras-layer


    【解决方案1】:

    一种方法是reshape 输出。

    outputs = []
    
    for i in range(Ty):
        out = Dense(3, activation="softmax")(x)
        outputs.append(out)
    
    output = Concatenate()(outputs)
    output = Reshape([Ty,3])(output)
    

    使用RepeatVector 我们可以转换(None, num_dec_tokens) => (None, Ty, num_dec_tokens)

    >>> dense = Dense(num_dec_tokens, activation="softmax")(x)
    >>> out = RepeatVector(Ty)(dense)
    

    在您的情况下,您将学习 Ty Dense 层,但在使用 RepeatVector 时不会。

    【讨论】:

    • 谢谢萨西兹。您使用“重塑”的建议解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-03
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多