pytorch教程龙曲良11-15
11創(chuàng)建tensor02
randn一般是均值為0,方差為1的正態(tài)分布N(0,1),也可以自定義N(u,std)用torch.normal
torch.normal(mean=torch.full([10],0),std=torch.arange(1,0,-0.1)) #比如先把一個(gè)2*5的矩陣打平變成1*10,然后normal后再reshape為2*5 #torch.full先構(gòu)建一個(gè)一維長度為10全是0的tensor,這樣他們的mean就都是0 #torch.arange使得標(biāo)準(zhǔn)差std分布為[1,0.9,0.8....]full
默認(rèn)類型是FloatTensor
torch.full([2,3],7)#dim=2,即兩行三列的tensor
torch.full([],7)#dim=0,即標(biāo)量
torch.full([1],7)#dim=1,一維一個(gè)元素的向量
torch.full([2],7)#dim=1, 一維兩個(gè)元素的向量
tensor([7.,7.])
arange等差數(shù)列
[start,end) 左閉右開
linspace按照steps等分切割 等差數(shù)列
[start,end]左閉右閉
/logspace按照steps等分切割
按照step^start ——>step^end等分
[start,end]左閉右閉
例:torch.logspace(0,1,steps=10)
10^0=1 到 10^1=10 間按10^0.1 10^0.2…劃分
ones:所有元素為1
zero:所有元素為1
eye:對角線賦值為1如果不是對角矩陣后面賦值為0
以上接收的都是shape
randperm 打散
idx=torch.randperm(2)#因?yàn)閍、b都有兩行,所以參數(shù)是2,
a[idx]
b[idx]必須是同一索引
12索引與切片1
indexing
dim 0 first
select first/last N
取連續(xù)的片段
select by steps
寫兩個(gè):表示隔行采樣
a[:,:,0:28:2,0:28:2].shape
#0:28:2表示[0,28)且每隔2取一次,所以是14
a[:,:,::2,::2].shape
#::2取所有,每隔2取一次, 所以是14,與上同
冒號(hào)總結(jié):
: all,只有冒號(hào)取所有[0,n)
:x [0,x)
x: [x,n)
start:end:step [start,end)隔step取一次
13索引與切片2
select by specific index
具體的索引
先定義了一個(gè)tensor,這里用到了linspace和view方法.
1第一個(gè)參數(shù)是索引的對象
2第二個(gè)參數(shù)0表示按行索引,1表示按列進(jìn)行索引
3第三個(gè)參數(shù)是一個(gè)tensor,就是索引的序號(hào),比如b里面tensor[0, 2]表示第0行和第2行,c里面tensor[1, 3]表示第1列和第3列。
返回切片后的張量tensor.
…
表示任意多的維度可以取代任意多的:,:,:,,根據(jù)實(shí)際情況判斷是取多少維度
select by mask
用掩碼,但是把數(shù)據(jù)打平處理
mask=x.ge(0.5)#值大于0.5的將對應(yīng)位置索引的矩陣置TRUE
掩碼為TRUE的值取出來
但是會(huì)把34的矩陣打平成112的向量,再取出符合的值,最后的shape 維度是1
14維度變換1
Operation
? View/reshape
? Squeeze/unsqueeze
? Transpose/t/permute
? Expand/repeat
View/reshape
缺點(diǎn)是維度丟失,因?yàn)閎可能是a.view(4,784)而來,但是b不知道原來a怎么存儲(chǔ)的,即不知道[B,C,W,H]是什么具體的值
view的時(shí)候必須保證size是一樣
prod(a.size)==prod(a’.size)
15維度變換2
squeeze v.s unsqueeze擠壓維度和展開維度
unsqueeze(pos/index) 表示在pos/index這個(gè)位置插入一個(gè)維度,對數(shù)據(jù)本身沒影響,只是增加維度,換個(gè)角度理解數(shù)據(jù)的存儲(chǔ)
index的范圍是[-a.dim()-1,a.din()+1] 即[-5,5)
索引的對應(yīng)如下
總結(jié)
以上是生活随笔為你收集整理的pytorch教程龙曲良11-15的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pytorch教程龙曲良06-10
- 下一篇: pytorch教程龙曲良16-20