Heim  >  Artikel  >  Backend-Entwicklung  >  isclose und equal in PyTorch

isclose und equal in PyTorch

Susan Sarandon
Susan SarandonOriginal
2024-11-05 18:54:02215Durchsuche

isclose and equal in PyTorch

Kauf mir einen Kaffee☕

*Memos:

  • Mein Beitrag erklärt eq() und ne().
  • Mein Beitrag erklärt gt() und lt().
  • Mein Beitrag erklärt ge() und le().
  • In meinem Beitrag werden Torch.nan und Torch.inf erklärt.

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])

equal() kann prüfen, ob zwei von 0D oder mehr D-Tensoren die gleiche Größe und die gleichen Elemente haben, und erhält den Skalar eines booleschen Werts wie unten gezeigt:

*Memos:

  • equal() 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).
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

Das obige ist der detaillierte Inhalt vonisclose und equal 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