0

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

h t = (1-z t )h t-1 + z t h t

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

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

我有以下错误:

AttributeError:“张量”对象没有属性“_keras_history”

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

4

1 回答 1

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-11-27T16:26:07.433 回答