【问题标题】:Use torch.eq() only for some value in Pytorch仅对 Pytorch 中的某些值使用 torch.eq()
【发布时间】:2018-05-18 07:18:08
【问题描述】:

有没有办法使用 torch.eq() 或类似的函数来计算基于元素的相等性,但仅适用于某些元素? 假设我需要知道两个张量中有多少个 1 相等,但我不关心其他数字。

知道怎么做吗?

【问题讨论】:

    标签: python arrays matrix pytorch tensor


    【解决方案1】:

    假设我们有 2 个张量 AB 填充了随机元素,最终在某处填充了一些 1。张量C 是希望你瞄准的结果:

    A = torch.rand((2, 3, 3))
    B = torch.rand((2, 3, 3))
    
    # fill A and B with some 1s
    ...
    
    C = (A == 1) * (B == 1)
    

    使用以下张量我们得到:

    (A) [[[ 0.6151,  1.0000,  0.6515],
             [ 0.3337,  0.4262,  0.0731],
             [ 0.4571,  0.2380,  1.0000]],
    
            [[ 1.0000,  0.1114,  0.8183],
             [ 0.9178,  1.0000,  1.0000],
             [ 0.8180,  0.8112,  0.2972]]]
    
    (B) [[[ 0.4305,  1.0000,  0.5378],
             [ 0.4171,  0.4365,  0.2805],
             [ 0.1076,  0.1259,  0.9695]],
    
            [[ 1.0000,  0.0911,  1.0000],
             [ 0.6757,  0.5095,  0.4499],
             [ 0.5787,  1.0000,  1.0000]]]
    
    (C) [[[ 0,  1,  0],
             [ 0,  0,  0],
             [ 0,  0,  0]],
    
            [[ 1,  0,  0],
             [ 0,  0,  0],
             [ 0,  0,  0]]]
    

    【讨论】:

    • 这是一个非常简单、优雅和巧妙的方法!非常感谢!
    猜你喜欢
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    相关资源
    最近更新 更多