也是时隔很长时间重启博客了记录一下对于学习重难点的整理以代码为主代码附加注释import torch #torch.where atorch.rand(4,4) btorch.rand(4,4) print(a) print(b) outtorch.where(a0.5,a,b) #如果a中元素满足就输出aa不满足直接输出b中元素 print(out) #torch.index_select print(torch.index_select) atorch.rand(4,4) print(a) outtorch.index_select(a,dim0,indextorch.tensor([0,3,2])) #实际是去了0.3.2行生成了新的tensor print(out) #torch.gather print(torch.gather) atorch.linspace(1,16,steps16).view(4,4) #定义一个序列 通过view改变其shape print(a) outtorch.gather(a,dim0, indextorch.tensor([[0,1,1,1], [0,1,2,2], [0,1,3,3]])) print(out) #更高维的gather ##输出索引关系dim0,out[i,j,k]input[index[i,j,k],j,k] ##输出索引关系dim1out[i,j,k]input[iindex[i,j,k],k] #torch.masked_index print(torch.masked_index) atorch.linspace(1,16,steps16).view(4,4) #定义一个序列 通过view改变其shape masktorch.gt(a,8) print(a) print(mask) outtorch.masked_select(a,mask) print(out) ##torch.take print(torch.take) atorch.linspace(1,16,steps16).view(4,4) btorch.take(a,indextorch.tensor([0,15,13,10])) print(b) ##torch.nonzero print(torch.nonzero) atorch.tensor([[0,1,2,0],[2,3,0,1]]) outtorch.nonzero(a) print(out) #表示非零元素位置用于稀疏表示