PyTorch 快速上手

torch.Tensor數(shù)據(jù)類(lèi)型

torch.Tensor是一種包含單一數(shù)據(jù)類(lèi)型元素的多維矩陣宅广。

Data tyoe CPU tensor GPU tensor
32-bit floating point torch.FloatTensor torch.cuda.FloatTensor
64-bit floating point torch.DoubleTensor torch.cuda.DoubleTensor
16-bit floating point N/A torch.cuda.HalfTensor
8-bit integer (unsigned) torch.ByteTensor torch.cuda.ByteTensor
8-bit integer (signed) torch.CharTensor torch.cuda.CharTensor
16-bit integer (signed) torch.ShortTensor torch.cuda.ShortTensor
32-bit integer (signed) torch.IntTensor torch.cuda.IntTensor
64-bit integer (signed) torch.LongTensor torch.cuda.LongTensor

torch.Tensor是默認(rèn)的tensor類(lèi)型(torch.FlaotTensor)的簡(jiǎn)稱

會(huì)改變tensor的函數(shù)操作會(huì)用一個(gè)下劃線后綴來(lái)標(biāo)示。比如恬口,torch.FloatTensor.abs_()會(huì)在原地計(jì)算絕對(duì)值表悬,并返回改變后的tensor弥锄,而tensor.FloatTensor.abs()將會(huì)在一個(gè)新的tensor中計(jì)算結(jié)果。

創(chuàng)建Tensor

# uninitialized
torch.empty()
torch.FloatTensor()
torch.IntTensor(d1,d2,d3)

torch.tensor([1.2, 3]).type()
# 設(shè)置默認(rèn)數(shù)據(jù)類(lèi)型
torch.set_default_tensor_type(torch.DoubleTensor)

# 隨機(jī)初始化
a = torch.rand(3,3)  #  [0,1]
torch.rand_like(a)
torch.randint(1,10,[3,3])  # [min, max]
# 正態(tài)分布
torch.randn(3,3)  # N(0,1)
torch.normal(mean=torch.full([10], 0), std=torch.arange(1, 0, -0.1))

torch.full([2,3], 7)  # 每個(gè)元素都設(shè)置為7
torch.full([], 7)  # 標(biāo)量
torch.arange(0,10)

# linspace/logspace
torch.linspace(0,10, steps=4)
torch.logspace(0, -1, steps=10)

# ones/zeros/eye/*_like
torch.ones(3,3)
torch.zeros(3,3)
torch.eye(3,4)

# randperm == random.shuffle
torch.randperm(10)

Tensor 切片

類(lèi)似于numpy切片操作蟆沫,eg: a[1:10,:], a[:10:2,:]

a = torch.randn(4,3,28,28)
a[:2]
a[:2, 1:, :,:].shape # output: [2,2,28,28]

# select by specific index
a.index_select(0, torch.tensor([0,2])) 
a[...].shape # 任意維度
a[..., :2] # 與*list 變長(zhǎng)解包類(lèi)似籽暇?

# select by mask
x = torch.randn(3,4)
mask = x.ge(0.5)
torch.masked_select(x, mask)

# select by flatten index
src = torch.tensor([[4,3,5], [6,7,8]])
torch.take(src, torch.tensor([0,2]))

Tensor維度變換

  • view/reshape
  • squeeze/unsqueeze
  • transpose/t/permute
  • expand/repeat
# view reshape  (lost dim information)
In [41]: a = torch.rand(4,1 ,28, 28)

In [42]: a.shape
Out[42]: torch.Size([4, 1, 28, 28])

In [43]: a.view(4, 28*28)
Out[43]: 
tensor([[0.6006, 0.8933, 0.1474,  ..., 0.5848, 0.9790, 0.6479],
        [0.1824, 0.8874, 0.1635,  ..., 0.3386, 0.3563, 0.0075],
        [0.8867, 0.9460, 0.1208,  ..., 0.1569, 0.2614, 0.7639],
        [0.1437, 0.5749, 0.2275,  ..., 0.5167, 0.6074, 0.5263]])
In [44]: a.view(4, 28*28).shape
Out[44]: torch.Size([4, 784])

# unsqueeze(維度增加)
In [50]: b = torch.rand(32)
In [51]: f = torch.rand(4,32, 14,14)
In [52]: b = b.unsqueeze(1).unsqueeze(2).unsqueeze(0)
In [53]: b.shape
Out[53]: torch.Size([1, 32, 1, 1])
# expand/repeat
b.expand([4,32,14,14]) # [1,32,1,1] -> [4,32,14,14]
b.repeat(4,1,32,32) # 重復(fù)

# a.t() 2d數(shù)據(jù)
# transpose
a.transpose(1,3) # 指定交換的dim
a.transpose(1,3).contiguous()

# permute 交換維度
# [b c h w] -> [b h w c]
b.permute(0,2,3,1) # [b h w c]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市饭庞,隨后出現(xiàn)的幾起案子戒悠,更是在濱河造成了極大的恐慌,老刑警劉巖舟山,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绸狐,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡累盗,警方通過(guò)查閱死者的電腦和手機(jī)寒矿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)若债,“玉大人符相,你說(shuō)我怎么就攤上這事〈懒眨” “怎么了主巍?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵冠息,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我孕索,道長(zhǎng)逛艰,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任搞旭,我火速辦了婚禮散怖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肄渗。我一直安慰自己镇眷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布翎嫡。 她就那樣靜靜地躺著欠动,像睡著了一般。 火紅的嫁衣襯著肌膚如雪惑申。 梳的紋絲不亂的頭發(fā)上具伍,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音圈驼,去河邊找鬼人芽。 笑死,一個(gè)胖子當(dāng)著我的面吹牛绩脆,可吹牛的內(nèi)容都是我干的萤厅。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼靴迫,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼惕味!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起玉锌,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤赦拘,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后芬沉,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體躺同,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年丸逸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蹋艺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡黄刚,死狀恐怖捎谨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤涛救,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布畏邢,位于F島的核電站,受9級(jí)特大地震影響检吆,放射性物質(zhì)發(fā)生泄漏舒萎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一蹭沛、第九天 我趴在偏房一處隱蔽的房頂上張望臂寝。 院中可真熱鬧,春花似錦摊灭、人聲如沸咆贬。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)掏缎。三九已至,卻和暖如春煤杀,著一層夾襖步出監(jiān)牢的瞬間眷蜈,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工怜珍, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人凤粗。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓酥泛,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親嫌拣。 傳聞我的和親對(duì)象是個(gè)殘疾皇子柔袁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349