Để so sánh hai tensor theo phần tử (element-wise) trong PyTorch, ta dùng phương thức torch.eq(). Nó so sánh các phần tử tương ứng và trả về True nếu hai phần tử giống nhau, ngược lại False. Có thể so sánh tensor cùng hoặc khác chiều, nhưng kích thước phải khớp ở chiều không phải singleton.
Các bước
Nhập thư viện torch. Đảm bảo đã cài.
Tạo tensor PyTorch và in ra.
Tính torch.eq(input1, input2). Trả về tensor True/False. So sánh từng phần tử, trả True nếu bằng nhau, ngược lại False.
In tensor kết quả.
Ví dụ 1
Chương trình sau minh họa so sánh hai tensor 1-D theo phần tử.
import torch
# Tạo hai tensor
T1 = torch.Tensor([2.4, 5.4, -3.44, -5.43, 43.5])
T2 = torch.Tensor([2.4, 5.5, -3.44, -5.43, 43])
# In tensor
print("T1:", T1)
print("T2:", T2)
# So sánh tensor
print(torch.eq(T1, T2))
Kết quả
T1: tensor([ 2.4000, 5.4000, -3.4400, -5.4300, 43.5000]) T2: tensor([ 2.4000, 5.5000, -3.4400, -5.4300, 43.0000]) tensor([ True, False, True, True, False])
Ví dụ 2
So sánh hai tensor 2-D.
import torch
# Tạo hai tensor 4x3
T1 = torch.Tensor([[2, 3, -32],
[43, 4, -53],
[4, 37, -4],
[3, 75, 34]])
T2 = torch.Tensor([[2, 3, -32],
[4, 4, -53],
[4, 37, 4],
[3, -75, 34]])
print("T1:", T1)
print("T2:", T2)
print(torch.eq(T1, T2))
Kết quả
T1: tensor([[ 2., 3., -32.],
[ 43., 4., -53.],
[ 4., 37., -4.],
[ 3., 75., 34.]])
T2: tensor([[ 2., 3., -32.],
[ 4., 4., -53.],
[ 4., 37., 4.],
[ 3., -75., 34.]])
tensor([[ True, True, True],
[False, True, True],
[ True, True, False],
[ True, False, True]])
Ví dụ 3
So sánh tensor 1-D với tensor 2-D.
import torch
T1 = torch.Tensor([2.4, 5.4, -3.44, -5.43, 43.5])
T2 = torch.Tensor([[2.4, 5.5, -3.44, -5.43, 7],
[1.0, 5.4, 3.88, 4.0, 5.78]])
print("T1:", T1)
print("T2:", T2)
print(torch.eq(T1, T2))
Kết quả
T1: tensor([ 2.4000, 5.4000, -3.4400, -5.4300, 43.5000])
T2: tensor([[ 2.4000, 5.5000, -3.4400, -5.4300, 7.0000],
[ 1.0000, 5.4000, 3.8800, 4.0000, 5.7800]])
tensor([[ True, False, True, True, False],
[False, True, False, False, False]])