栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

陆地移动距离的python实现

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

陆地移动距离的python实现

陆地移动距离的python实现

Earth Mover s Distance,即陆地移动距离,是一种度量准则。光线变化能引起颜色直方图的漂移,引起颜色值位置发生变化,这时候一些直方图的比较匹配策略失效。EMD算法本身是一个通用的算法,它实际上度量的是怎样讲一个直方图的形状转变为另一个直方图的形状,包括直方图的部分(或全部)到一个新的位置,可以在直方图任何维的直方图上进行这种度量。
代码中的输入是我们要度量的直方图!

class EarthMoversDistanceLoss(nn.Module):
    def __init__(self):
        super().__init__()

    def forward(self, x, y):
        # input has dims: (Batch x Bins)
        bins = x.size(1)
        r = torch.arange(bins)
        s, t = torch.meshgrid(r, r)
        tt = t >= s

        cdf_x = torch.matmul(x, tt.float().cuda())
        cdf_y = torch.matmul(y, tt.float().cuda())

        return torch.sum(torch.square(cdf_x - cdf_y), dim=1)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1005115.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号