gpt4 book ai didi

keras - 如何计算两个 Keras 张量的平方差?

转载 作者:行者123 更新时间:2023-12-02 06:33:40 24 4
gpt4 key购买 nike

我有一个 Keras Model,它计算两个形状相同的张量:r1r2。我想让模型计算 (r1 - r2)**2

我可以使用 keras.layers.add(r1, r2) 计算这些张量的总和。我可以使用 keras.layers.multiply(r1, r2) 来获取产品。如果有一个 subtract 函数,我会写

r = keras.layers.subtract(r1, r2)
square_diff = keras.layers.multiply(r, r)

但似乎没有 keras.layers.subtract 函数。

相反,我一直在尝试弄清楚如何将我的输入之一乘以常数 -1 张量,然后相加,但我不知道如何创建该 -1 张量。我尝试了多种变体

negative_one = keras.backend.constant(np.full(r1.get_shape()), -1)

这些都不起作用。大概是因为 r1 的维度是 (?, 128) (即第一个维度是批量大小,第二个维度表示 128 个隐藏元素。)

Keras 中获取两个张量差异的正确方法是什么?

最佳答案

正如 dhinckley 提到的,您应该使用 Lambda 层。但我建议首先定义您的自定义函数。有了这段代码就会更清晰一点:

import keras.backend as K
from keras.layers import Lambda

def squared_differences(pair_of_tensors):
x, y = pair_of_tensors
return K.square(x - y)

square_diff = Lambda(squared_differences)([r1, r2])

关于keras - 如何计算两个 Keras 张量的平方差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44294913/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com