将乱序聚类整理
初始化矩阵
FC0和FC1
FC0,FC1=np.squeeze(FC0),np.squeeze(FC1)#降维
FC0,FC1=torch.tensor(FC0),torch.tensor(FC1)#转为张量
label0,label1 = torch.zeros(args.batch_size, 6),torch.zeros(args.batch_size, 6)#batch_size为行数,自己设置,6为列数
c = torch.ones([args.batch_size, 6])#建立一个全是1的矩阵
v0, indces0 = torch.sort(FC0, dim=1, descending=True)#进行排序
v1, indces1 = torch.sort(FC1, dim=1, descending=True)
index = torch.tensor([0])
indces0,indces1 = torch.index_select(indces0, 1, index),torch.index_select(indces1, 1, index)
#选择第一列,indces0是选择的对象,1表示列,torch.tensor([0])表示第一列,torch.tensor([0,2])表示第一列和第三列
indces0,indces1 = np.array(indces0),np.array(indces1)
indces0,indces1 = np.sort(indces0, axis=0),np.sort(indces1,axis=0)#排序
label0.scatter_(1, torch.LongTensor(indces0), c)
label1.scatter_(1, torch.LongTensor(indces1), c)#填充
#(具体函数请百度)
注释
上面的v0,v1,这是排序后的矩阵
这是indices0和indices1,主要是你排序后,各个值在原来矩阵的索引。从本代码来看,第一列就是原矩阵值为1的行索引。