所以,我正在使用 Keras 来实现卷积神经网络。在我的解码拓扑结束时,有一个带有 sigmoid 激活的 Conv2D 层。
decoded = Conv2D(1, (3, 3), activation='sigmoid', padding='same')(x)
基本上,我想更改 sigmoid 实现,我的目标是使其成为二进制类型的激活,如果 sigmoid 函数的值低于 0.5,则返回 0,如果它的值等于或高于 0.5,则返回 1。
在 Tensorflow 实现中搜索,我发现 sigmoid 是这样的:
def sigmoid(x, name=None):
with ops.name_scope(name, "Sigmoid", [x]) as name:
x = ops.convert_to_tensor(x, name="x")
return gen_math_ops._sigmoid(x, name=name)
我在操作 gen_math_ops 返回时遇到问题,将其值与 0.5 阈值进行比较。我知道由于张量类型的限制而不能使用通常的 if,那么我应该如何解决这个问题?