首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以Keras为度量单位的角度距离

以Keras为度量单位的角度距离
EN

Stack Overflow用户
提问于 2019-06-14 03:17:38
回答 1查看 418关注 0票数 1

我正在使用Keras来训练我的模型,并希望使用我的预测和假设之间的角距离作为我的度量。到目前为止,我发现的最接近的度量是余弦接近度,而不是角距离。

我对余弦近似性(或余弦距离)的问题是,小数字的余弦非常相似。

查看Wikipedia,可以使用余弦邻近度计算角距离:

因此,我想知道使用基于余弦邻近度的自定义度量是不是一个好主意,如果是的话,它是如何实现的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-14 07:42:00

所以我想我有了我自己问题的答案。我所做的是首先通过简单地使用Keras的源代码来计算余弦邻近度。然后我计算了前一个结果的反余弦:

代码语言:javascript
复制
def angular_distance(y_true, y_pred):
     y_true = K.l2_normalize(y_true, axis=-1)
     y_pred = K.l2_normalize(y_pred, axis=-1)
     cosine = K.sum(y_true * y_pred, axis=-1)
     return 2*tf.math.acos(cosine)/np.pi

然后,我将新函数作为自定义指标传递给模型的编译脚本:

代码语言:javascript
复制
model.compile(loss='categorical_crossentropy', optimizer=Adam(0.001),
            metrics=[angular_distance])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56587247

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档