python选取tensor某一维_Pytorch的Tensor操作(1)
類型推斷
torch.randn():隨機初始化
a.type():返回類型
type():返回基本類型
isinstance() :檢查類型
cuda會影響數據類型
標量
維度(dimention)為0的標量
標量的shape:
返回類型為【】(空的list),返回長度也為0
a.dimension()也為0
Dim1
torch.tensor() : 輸入具體數據
torch.FloatTensor() :輸入類型大小
Dim1的shape
Dim2
Dim3
Dim4(一般用于圖像)
創建Tensor
import from numpy
從numpy轉化為tensor類型, 數據類型(float)不變,變量類型(np→numpy)變了
生成未初始化tensor
設置默認類型
隨機初始化
torch.rand() :隨機采樣【0,1】之間的數
torch.rand_like(a): 采樣出與a相同類型的tensor
torch.randint(min,max,[type]):不包含最大值
正態分布隨機初始化
torch.normal(mean,std): 自定義的正態分布,需要給出相同數量的均值和方差
重復填充
torch.full():類型為[]時,表示生成的為標量
范圍
torch.arange():生成不包含最大值的等差數列
torch,linspace(min,max,steps= ):包含最大值,steps是切分后的數量
全1/零/單位矩陣
torch.eye():中如果不是方陣,多余部分為0
隨機打散
torch.randperm(): 生成不包含最大值的索引
下面對第一維進行shuffle,randperm中的參數必須與類型的第一維相同。a和b的idx相同,防止匹配錯誤
下圖表示,randperm中定義需要兩個索引時,分別返回a b的對應索引值
切片和索引
索引
取不到“ :”后的元素
-1表示最后一個元素
分段采樣
出現兩個“:”表示的是:start :end?:step(默認為1,為1可省略)
指定維度采樣
“ ...”:表示同時取多個維度,只能全選或已知前后具體采樣維度,剩下的全選,某一維度取“1”時,會自動降維
根據MASK選擇
先根據條件,得到一定的掩碼,根據滿足條件的掩碼值重新在原始數據中進行選擇
鋪展(Flatten)索引值
緯度變化
View Reshape
增維(Unsqueeze)
下面的a為標量,在第0維與第1維添加維度后,分別會變為[1,2] [2,1]
下面是bias向權重類型變化過程
降維(squeeze)
如果沒有具體參數,將去除所有為“1”的維度
帶有參數,將對對應維度進行去除
擴展(expand)
總維度必須相同,且只能從1維度擴展到指定維度或直接相同
“-1”保持原來維度不變
重復(repeat)
與expand參數不同,每個維度的值表示對對應維度進行的重復次數。
矩陣轉置(transpose)
下面兩行函數說明,即使前后的總體數據類型的大小相同,但是相同維度所表示的意義也進行了交換,因此不再表示同一Tensor
permute
可以自動調用transpose,并保證維度順序的順利交換
本文地址:https://blog.csdn.net/qq_42518956/article/details/107621610
希望與廣大網友互動??
點此進行留言吧!
總結
以上是生活随笔為你收集整理的python选取tensor某一维_Pytorch的Tensor操作(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML2.z
- 下一篇: Vue.js 目录结构