Heim  >  Artikel  >  Backend-Entwicklung  >  isclose in PyTorch

isclose in PyTorch

DDD
DDDOriginal
2024-11-04 10:31:53174Durchsuche

isclose in PyTorch

Kauf mir einen Kaffee☕

*Memos:

  • Mein Beitrag erklärt equal(), eq() und ne().
  • Mein Beitrag erklärt gt() und lt().
  • Mein Beitrag erklärt ge() und le().

isclose() kann prüfen, ob die null oder mehr Elemente des 1. 0D- oder mehr D-Tensors elementweise gleich oder nahezu gleich den null oder mehr Elementen des 2. 0D oder mehr D-Tensors sind, und so den 0D oder mehr erhalten D-Tensor aus null oder mehr Elementen, wie unten gezeigt:

*Memos:

  • isclose() kann mit Torch oder einem Tensor verwendet werden.
  • Das 1. Argument (Eingabe) mit Torch oder unter Verwendung eines Tensors (Required-Type:Tensor von int, float, complex oder bool).
  • Das 2. Argument mit Torch oder das 1. Argument mit einem Tensor ist other(Required-Type:tensor of int, float, complex oder bool).
  • Das 3. Argument mit Torch oder das 2. Argument mit einem Tensor ist rtol(Optional-Default:1e-05-Type:float).
  • Das 4. Argument mit Torch oder das 3. Argument mit einem Tensor ist atol(Optional-Default:1e-08-Type:float).
  • Das 5. Argument mit Torch oder das 4. Argument mit einem Tensor ist equal_nan(Optional-Default:False-Type:bool): *Memos:
    • Wenn es wahr ist, geben nan und nan „Wahr“ zurück.
    • Grundsätzlich geben nan und nan False zurück.
  • Die Formel lautet |Eingabe – Sonstiges| <= rtol x |other| atol.
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])

Das obige ist der detaillierte Inhalt vonisclose in PyTorch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn