如何在Keras中实现1sigmoid?

2024-09-24 00:35:58 发布

您现在位置:Python中文网/ 问答频道 /正文

因为我想实现一个类似于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' object has no attribute '_keras_history'

我已经尝试过其他一些方法,比如使用Lambda层,但它不起作用。你知道吗


Tags: 代码lenones结构onetempmultiplyht
1条回答
网友
1楼 · 发布于 2024-09-24 00:35:58

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

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

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

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

它将自动广播和减法将是元素明智的。你知道吗

相关问题 更多 >