【问题标题】:How to implement 1-sigmoid in Keras?如何在 Keras 中实现 1-sigmoid?
【发布时间】:2018-11-27 16:16:37
【问题描述】:

因为我想实现一个类似于 GRU 的更新门的结构:

ht = (1-zt)ht-1 + ztht

我正在尝试使用这些代码来实现它,但它不起作用。我确定问题出在以下代码中:

one = K.ones(shape=(1, len, 128))
zt=Subtract([one,zt])
temp_conv2=multiply([reset_conv,zt])
output=Add([temp_conv1,temp_conv2])

我有以下错误:

AttributeError:'Tensor' 对象没有属性 '_keras_history'

我已经尝试了一些其他方法,例如使用Lambda层,但它不起作用。

【问题讨论】:

标签: python machine-learning keras deep-learning gated-recurrent-unit


【解决方案1】:

one 不是 Keras 张量,因此您会收到该错误。您可以将其包装在 Lambda 层中:

zt = Lambda(lambda x: Subtract([K.ones(shape=(1, len, 128)), x]))(zt)

即使你不需要构造一个张量。只需使用1-x:

zt = Lambda(lambda x: 1-x)(zt)

它将被自动广播,并且减法将是元素方面的。

【讨论】:

    猜你喜欢
    • 2018-01-08
    • 2018-10-20
    • 2012-02-22
    • 2023-03-28
    • 2017-11-25
    • 2018-06-28
    • 2019-09-03
    • 1970-01-01
    • 2017-03-07
    相关资源
    最近更新 更多