Lesson1——Tensor

 

Tensor

Method 描述
is_tensor(obj) 如果 obj 是 PyTorch 張量,則返回 True ;
is_storage(obj) 如果 obj 是 PyTorch 存儲對象,則返回 True ;[torch.storage() ]
is_complex(input) input如果 的數據類型是複雜數據類型,則返回 True ;
is_conj(input) 如果 input 是共軛張量,則返回 True ,即其共軛位設置為 True
is_floating_point(input) 如果 input 的數據類型是浮點數據類型,則返回 True ;
is_nonzero(input) input 如果是 單個張量且類型轉換後不等於0,則返回 True ;
set_default_dtype(d) 將默認浮點 dtype 設置為d;[ dtype 查看類型]
get_default_dtype() 獲取當前的默認浮點數 torch.dtype;[默認是 torch.float32 ]
set_default_tensor_type(t) 將默認 torch.Tensor 類型設置為浮點張量類型 t
numel(input) 返回 input 張量中元素的總數;[考慮 tensor.shape 的各個維度相乘]
set_printoptions 設置輸出格式;
set_flush_denormal(model) 禁用 CPU 上的非規範浮點數;[處理精度問題,False 則完整輸出]

創建操作

Method 描述
tensor 用 構造一個張量data
sparse_coo_tensor 在給定索引處構造一個具有指定值的 COO(rdinate) 格式的稀疏張量;
as_tensor 將數據轉換為torch.Tensor ;
as_strided 創建具有指定大小、步幅和 storage_offset 的現有 torch.Tensor 輸入的視圖;
from_numpy 從 numpy.ndarray 創建一個張量;
frombuffer 從實現 Python 緩衝區協議的對象創建一維張量;
zeros 返回一個用標量值 0 填充的張量,其形狀由變量參數 *size 定義;
zeros_like 返回一個用標量值 0 填充的張量,大小與 input 相同;
ones 返回一個用標量值 1 填充的張量,其形狀由變量參數 *size 定義;
ones_like 返回一個用標量值 1 填充的張量,其大小與input 相同;
arange 返回大小為$\left\lceil\frac{\text { end-start }}{\text { step }}\right\rceil$的一維張量,生成區間 [start , end),公差為 step;
range 返回大小為 $\left\lceil\frac{\text { end-start }}{\text { step }}\right\rceil +1$ 的一維張量值,從startend,步長為 step
linspace 創建大小為 steps 的一維張量,其值從到 start 到 end 的均勻分佈;
logspace 創建大小為 steps 的一維張量,值從 ${{\text{{base}}}}^{{\text{{start}}}}$ 到 ${{\text{{base}}}}^{{\text{{end}}}}$ 
eye 返回一個二維張量,其中對角線為 1,其他位置為 0;
empty 返回一個未初始化數據的張量;
empty_like 返回與 input 大小相同的未初始化張量;
empty_strided 返回一個充滿未初始化數據的張量;
full 創建一個大小為 size 的張量,值用 fill_value 填充;
full_like 返回一個與input 大小相同的張量,並用fill_value填充;
quantize_per_tensor 將浮點張量轉換為具有給定比例和零點的量化張量;
quantize_per_channel 將浮點張量轉換為具有給定比例和零點的每通道量化張量;
dequantize 通過反量化量化張量返回 fp32 張量;
complex 構造複數張量,其實部等於 real 虛部等於 imag
polar 構造複數張量,元素是笛卡爾坐標,對應於具有絕對值和角度的極坐標
heaviside 計算 中的每個元素的 Heaviside 階躍函數input

索引、切片、連接、變異操作

Method 描述
cat 連接給定seq給定維度的張量序列;[ 默認axis = 0 ]
concat 別名 torch.cat()
conj 返回input帶有翻轉共軛位的視圖;[ real 相等,imag 相反,考慮 is_conj() ]
chunk 將張量拆分為指定數量的塊;[ 不一定等於給定數量塊 ]
dsplit input具有三個或更多維度的張量深度拆分為多個張量;
column_stack 通過在 中水平堆疊張量來創建一個新張量 tensors;
dstack 按深度順序堆疊張量(沿第三軸);
gather 沿 dim 指定的軸收集值;
hsplit input具有一個或多個維度的張量水平拆分為多個張量;
hstack 水平順序堆疊張量(按列);
index_select 返回一個新的張量,沿指定軸、索引選擇;
masked_select 返回一個新的一維張量,根據 mask 中的 True 選擇 input 中的值;
movedim 將 input 的軸從 source 轉移到 destination ;
moveaxis torch.movedim() 的別名;
narrow 返回一個新的張量,沿指定 dim ,選擇從 start 到 start+length 的元素 ;
nonzero 返回一個新的張量,將值不為 0 的坐標給出;
permute 返回原始張量的視圖,input其尺寸已置換;
reshape 返回具有與input相同的數據和元素數量但具有指定形狀的張量;
row_stack torch.vstack() 的別名;
scatter 異地版本torch.Tensor.scatter_()
scatter_add 異地版本torch.Tensor.scatter_add_()
split 根據 split_size_or_sections 將張量拆分為塊;
squeeze 返回一個張量,其中所有input大小為1的維度都已刪除;
stack 沿 dim 連接一系列張量;
swapaxes torch.transpose() 的別名;
swapdims torch.transpose() 的別名;
t 張量轉置;
take 從 input 返回具有給定索引處元素的新張量;
take_along_dim 從給定 input 的 1 維索引處選擇值;
tensor_split 根據 指定的索引或節數,將input一個張量拆分為多個子張量;
tile 通過重複 input 的元素構造一個張量。
transpose 返回一個張量,它是 的轉置版本input
unbind 刪除軸 dim 下的張量維度,並返回新張量。
unsqueeze 返回一個插入到指定位置的尺寸為 1 的新張量。
vsplit 根據input將具有兩個或多個維度的張量垂直拆分為多個張量。
vstack 垂直(按行)按順序堆疊張量。
where 返回從xy中選擇的元素的張量,具體取決於condition.

Generators

Method 描述
Generator 創建並返回一個生成器對象,該對象管理生成偽隨機數的算法的狀態;

隨機抽樣

Method 描述
seed 將生成隨機數的種子設置為非確定性隨機數;
manual_seed 設置生成隨機數的種子;
initial_seed 返回用於生成隨機數的初始種子作為 Python long;
get_rng_state 以torch.ByteTensor 形式返回隨機數生成器狀態;
set_rng_state 設置隨機數生成器狀態;

分佈

Method 描述
bernoulli 從伯努利分佈中繪製二進制隨機數(0 或 1);
multinomial 返回一個張量,每一行包含num_samples從位於相應張量行中的多項概率分佈中採樣的索引
normal 返回從給出均值和標準差的獨立正態分佈中抽取的隨機數張量;
poisson 返回與從泊松分佈中採樣的每個元素大小相同的張量;
rand 從區間上的均勻分佈返回一個填充有隨機數[ 0 ,1 )的張量
rand_like 返回一個大小相同的張量,其中input填充了區間上均勻分佈的隨機數[0, 1);
randint 返回一個填充了隨機整數的張量,用[low ,high)填充的張量
randint_like 返回一個與 Tensor 形狀相同的張量,[low,high)之間均勻生成的隨機整數;
randn 從均值為 0方差為1的正態分佈中返回一個填充隨機數的張量;
randn_like 返回一個大小相同的張量,填充了來自均值為 0 和方差為 1 的正態分佈的隨機數;
randperm 返回從 0 到 n-1 的整數的隨機排列;