python实现二维tensor对应列相同元素的个数
例子:
t1 = torch.tensor([[1,3,5],[2,4,6]]
t2 = torch.tensor([[2,3,5],[2,3,6]]
即:
t1 = [[1, 3, 5],
[2, 4, 6]]
t2 = [[2, 3, 5],
[2, 3, 6]]
首先让tensor变成numpy
【注】:如果是用gpu训练的,要先转换成cpu
t1 = t1.cpu().numpy()
t2 = t2.cpu().numpy()
然后利用“集合”特性,“&”操作实现筛选出两个集合中共有的元素
t1 = set(t1)
t2 = set(t2)
最后,对于每一行:
用切片操作
如:取出第一行
t1_1 = t1[0, :] # ":"表示选中一行中所有元素
代码:
“”“
# 刚开始,t1, t2 还是tensor数据
# 取每一行元素
for i in range(t1.size(0)):
t1_i = set(t1.cpu().numpu()[i, :])
t2_i = set(t2.cpu().numpy()[i, :])
# 第 i 行共同元素
com_i = list(t1 & t2)
# 第i行共同元素个数
num_com_i = len(cim_i)
”“”