Rumah > pembangunan bahagian belakang > Tutorial Python > isclose dan sama dalam PyTorch

isclose dan sama dalam PyTorch

Susan Sarandon
Lepaskan: 2024-11-05 18:54:02
asal
416 orang telah melayarinya

isclose and equal in PyTorch

Beli Saya Kopi☕

*Memo:

  • Siaran saya menerangkan eq() dan ne().
  • Siaran saya menerangkan gt() dan lt().
  • Siaran saya menerangkan ge() dan le().
  • Siaran saya menerangkan torch.nan dan torch.inf.

isclose() boleh menyemak sama ada sifar atau lebih elemen bagi tensor 0D pertama atau lebih D adalah sama atau hampir sama dengan sifar atau lebih elemen bagi elemen tensor 0D ke-2 atau lebih D dari segi elemen, mendapat 0D atau lebih D tensor sifar atau lebih elemen seperti yang ditunjukkan di bawah:

*Memo:

  • isclose() boleh digunakan dengan obor atau tensor.
  • Argumen(input) pertama dengan obor atau menggunakan tensor(Jenis Diperlukan:tensor int, float, kompleks atau bool).
  • Argumen ke-2 dengan obor atau argumen pertama dengan tensor adalah lain(Jenis-Jenis:tensor int, apungan, kompleks atau bool).
  • Argumen ke-3 dengan obor atau argumen ke-2 dengan tensor ialah rtol(Optional-Default:1e-05-Type:float).
  • Argumen ke-4 dengan obor atau argumen ke-3 dengan tensor ialah atol(Optional-Default:1e-08-Type:float).
  • Argumen ke-5 dengan obor atau argumen ke-4 dengan tensor ialah equal_nan(Optional-Default:False-Type:bool): *Memo:
    • Jika Benar, nan dan nan kembali Benar.
    • Pada asasnya, nan dan nan membalas Palsu.
  • Formulanya ialah |input - lain| <= rtol x |lain| 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])
Salin selepas log masuk

equal() boleh menyemak sama ada dua daripada 0D atau lebih D tensor mempunyai saiz dan elemen yang sama, mendapatkan skalar nilai boolean seperti yang ditunjukkan di bawah:

*Memo:

  • equal() boleh digunakan dengan obor atau tensor.
  • Argumen(input) pertama dengan obor atau menggunakan tensor(Jenis Diperlukan:tensor int, float, kompleks atau bool).
  • Argumen ke-2 dengan obor atau argumen pertama dengan tensor adalah lain(Jenis-Jenis:tensor int, apungan, kompleks atau 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
Salin selepas log masuk

Atas ialah kandungan terperinci isclose dan sama dalam PyTorch. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan