需求:两个矩阵完全相等,返回True,如果有元素不一样,返回False
前提:两个矩阵的维度必须相同,否则会报错
目录
解决方案一:torch.equal() ヾ(´・ ・`。)ノ
尝试1:使用torch.eq()
输入:
import torch
a=torch.randint(2,[3,4])
print(a)
b=torch.randint(2,[3,4])
print(b)
torch.eq(a,b)
输出:
tensor([[0, 1, 1, 0],
[1, 1, 1, 1],
[1, 1, 1, 0]])
tensor([[0, 0, 1, 1],
[0, 0, 1, 0],
[1, 0, 0, 1]])
tensor([[ True, False, True, False],
[False, False, True, False],
[ True, False, False, False]])
对里面的每个元素进行了比较,返回了一个矩阵 (不符合我们的需求)
尝试2:比较运算符==
输入:
import torch
a=torch.randint(2,[3,4])
print(a)
b=torch.randint(2,[3,4])
print(b)
a==b
输出:
tensor([[1, 1, 1, 0],
[1, 0, 0, 0],
[0, 1, 1, 0]])
tensor([[0, 1, 1, 0],
[0, 1, 1, 1],
[1, 1, 1, 0]])
tensor([[False, True, True, True],
[False, False, False, False],
[False, True, True, True]])
解决方案一:torch.equal() ヾ(´・ ・`。)ノ
输入:
import torch
a=torch.randint(1,[3,4])
print(a)
b=torch.randint(1,[3,4])
print(b)
torch.equal(a,b)
输出:
tensor([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
tensor([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
True
解决方案二:torch.all()
其实有上面这种方法就够了,下面这种方法相比较来说不实用,出现的时候认识就可以了
torch.all()如果元素全为True,则返回True,如果元素全为False,则返回False
输入:
import torch
a=torch.randint(1,[3,4])
print(a)
b=torch.randint(1,[3,4])
print(b)
torch.all(torch.eq(a,b))
输出:
tensor([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
tensor([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
tensor(True)