isclose und equal in PyTorch

Susan Sarandon
Freigeben: 2024-11-05 18:54:02
Original
278 Leute haben es durchsucht

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])
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage