我想实现一种类似于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:“ Tensor”对象没有属性“ _keras_history”
我已经尝试了其他方法,例如使用Lambda
层,但是它不起作用。
答案 0 :(得分: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)
它将自动广播,并且减法将是逐元素的。