PyTorch 中的接近和相等

ID:20312 / 打印

pytorch 中的接近和相等

请我喝杯咖啡☕

*备忘录:

  • 我的帖子解释了 eq() 和 ne()。
  • 我的帖子解释了 gt() 和 lt()。
  • 我的帖子解释了 ge() 和 le()。
  • 我的帖子解释了 torch.nan 和 torch.inf。

isclose() 可以检查第一个 0d 或更多 d 张量的零个或多个元素是否等于或接近等于第二个 0d 或更多 d 张量的零个或多个元素,得到 0d 或更多零个或多个元素的 d 张量如下所示:

*备忘录:

  • isclose() 可以与 torch 或张量一起使用。
  • 第一个参数(输入)使用 torch 或使用张量(必需类型:int、float、complex 或 bool 的张量)。
  • 带有 torch 的第二个参数或带有张量的第一个参数是其他(必需类型:int、float、complex 或 bool 的张量)。
  • 带有 torch 的第三个参数或带有张量的第二个参数是 rtol(optional-default:1e-05-type:float)。
  • 带有 torch 的第四个参数或带有张量的第三个参数是 atol(optional-default:1e-08-type:float)。
  • 带有 torch 的第五个参数或带有张量的第四个参数是 equal_nan(optional-default:false-type:bool): *备注:
    • 如果为 true,则 nan 和 nan 返回 true。
    • 基本上,nan 和 nan 返回 false。
  • 公式为 |输入 - 其他|
import torch  tensor1 = torch.tensor([1.00001001, 1.00000996, 1.00000995, torch.nan]) tensor2 = torch.tensor([1., 1., 1., torch.nan])  torch.isclose(input=tensor1, other=tensor2) torch.isclose(input=tensor1, other=tensor2,               rtol=1e-05, atol=1e-08, equal_nan=false)             # 0.00001   # 0.00000001 tensor1.isclose(other=tensor2) torch.isclose(input=tensor2, other=tensor1) # tensor([false, false, true, false])  torch.isclose(input=tensor1, other=tensor2, equal_nan=true) # tensor([false, false, true, true])  tensor1 = torch.tensor([[1.00001001, 1.00000996],                         [1.00000995, torch.nan]]) tensor2 = torch.tensor([[1., 1.],                         [1., torch.nan]]) torch.isclose(input=tensor1, other=tensor2) torch.isclose(input=tensor2, other=tensor1) # tensor([[false, false], #         [true, false]])  tensor1 = torch.tensor([[[1.00001001],                          [1.00000996]],                         [[1.00000995],                          [torch.nan]]]) tensor2 = torch.tensor([[[1.], [1.]],                         [[1.], [torch.nan]]]) torch.isclose(input=tensor1, other=tensor2) torch.isclose(input=tensor2, other=tensor1) # tensor([[[false], [false]], #         [[true], [false]]])  tensor1 = torch.tensor([[1.00001001, 1.00000996],                         [1.00000995, torch.nan]]) tensor2 = torch.tensor([1., 1.])  torch.isclose(input=tensor1, other=tensor2) torch.isclose(input=tensor2, other=tensor1) # tensor([[false, false], #         [true, false]])  tensor1 = torch.tensor([[1.00001001, 1.00000996],                         [1.00000995, torch.nan]]) tensor2 = torch.tensor(1.)  torch.isclose(input=tensor1, other=tensor2) torch.isclose(input=tensor2, other=tensor1) # tensor([[false, false], #         [true, false]])  tensor1 = torch.tensor([0, 1, 2]) tensor2 = torch.tensor(1)  torch.isclose(input=tensor1, other=tensor2) # tensor([false, true, false])  tensor1 = torch.tensor([0.+0.j, 1.+0.j, 2.+0.j]) tensor2 = torch.tensor(1.+0.j)  torch.isclose(input=tensor1, other=tensor2) # tensor([false, true, false])  tensor1 = torch.tensor([false, true, false]) tensor2 = torch.tensor(true)  torch.isclose(input=tensor1, other=tensor2) # tensor([false, true, false]) 

equal() 可以检查两个 0d 或更多 d 张量是否具有相同的大小和元素,得到布尔值的标量,如下所示:

*备忘录:

  • equal() 可以与 torch 或张量一起使用。
  • 第一个参数(输入)使用 torch 或使用张量(必需类型:int、float、complex 或 bool 的张量)。
  • 带有 torch 的第二个参数或带有张量的第一个参数是其他(必需类型:int、float、complex 或 bool 的张量)。
import torch  tensor1 = torch.tensor([5, 9, 3]) tensor2 = torch.tensor([5, 9, 3])  torch.equal(input=tensor1, other=tensor2) tensor1.equal(other=tensor2) torch.equal(input=tensor2, other=tensor1) # True  tensor1 = torch.tensor([5, 9, 3]) tensor2 = torch.tensor([7, 9, 3])  torch.equal(input=tensor1, other=tensor2) torch.equal(input=tensor2, other=tensor1) # False  tensor1 = torch.tensor([5, 9, 3]) tensor2 = torch.tensor([[5, 9, 3]])  torch.equal(input=tensor1, other=tensor2) torch.equal(input=tensor2, other=tensor1) # False  tensor1 = torch.tensor([5., 9., 3.]) tensor2 = torch.tensor([5.+0.j, 9.+0.j, 3.+0.j])  torch.equal(input=tensor1, other=tensor2) torch.equal(input=tensor2, other=tensor1) # True  tensor1 = torch.tensor([1.+0.j, 0.+0.j, 1.+0.j]) tensor2 = torch.tensor([True, False, True])  torch.equal(input=tensor1, other=tensor2) torch.equal(input=tensor2, other=tensor1) # True  tensor1 = torch.tensor([], dtype=torch.int64) tensor2 = torch.tensor([], dtype=torch.float32)  torch.equal(input=tensor1, other=tensor2) torch.equal(input=tensor2, other=tensor1) # True 
上一篇: 探索嵌入式系统测试中的测试自动化
下一篇: 了解工厂和工厂方法设计模式

作者:admin @ 24资源网   2025-01-14

本站所有软件、源码、文章均有网友提供,如有侵权联系308410122@qq.com

与本文相关文章

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。