pytorch之tensor按索引赋值,三种方法!
生活随笔
收集整理的這篇文章主要介紹了
pytorch之tensor按索引赋值,三种方法!
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
這里,我們介紹其中一種方法,即torch.scatter_()函數(shù)
import torch label = torch.zeros(3, 6) #首先生成一個(gè)全零的多維數(shù)組 print("label:",label) a = torch.ones(3,5)b = [[0,1,2],[0,1,3],[1,2,3]] #這里需要解釋的是,b的行數(shù)要小于等于label的行數(shù),列數(shù)要小于等于a的列數(shù) print(a) label.scatter_(1,torch.LongTensor(b),a) #參數(shù)解釋:‘1’:需要賦值的維度;‘torch.LongTensor(b)’:需要賦值的索引;‘a(chǎn)’:要賦的值 print("new_label: ",label)輸出:
?
可以實(shí)現(xiàn)相同功能的函數(shù)還有:index_fill_(dim, index, val) ;index_put_(indices, value)
2.index_fill_(dim, index, val)
dim:要填充的維度
index:要填充的索引
val:要填充的值
與上面的用法類似
3.index_put_(indices, value)
indices:要填充的索引,與上面不同的是,這里直接使用的是要填充值的行和列
value:要填充的值
用法:
a = torch.zeros([5,5]) index = (torch.LongTensor([0,1]),torch.LongTensor([1,2])#生成索引 value = torch.Tensor([1,1]) #生成要填充的值 a.index_put_(index), value)這就是上述三種方法,歡迎大家留言交流!
總結(jié)
以上是生活随笔為你收集整理的pytorch之tensor按索引赋值,三种方法!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: pytorch切片,numpy切片的总结
- 下一篇: Tensorflow之flags的用法介