作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Keras Model
,它计算两个形状相同的张量:r1
和 r2
。我想让模型计算 (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
函数。
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/
我是一名优秀的程序员,十分优秀!