# 一些簡單的操作
torch.view()
torch.tensor()
torch.expand(bs, -1)
matrix.topk(number, dim=1, largest=true, sorted=true)
matrix.zero_().scatter_(1, label, 1) # matrix變為 one-hot 標籤
matrix.sort(dim=1, true) # true, 從大到小,預設從小到大
torch.index_select(matrix, dim=0, index)
torch.cat((a,b), dim=0)
torch.unbind(features, dim=1) # 刪除dim維度,返回乙個陣列,包含沿著指定維dim切片後的各個切片
torch.matmul(a, b.t)
torch.unique(label).numel() # 返回label裡標籤的類別數
torch.cat((xi, xj), dim=0)
torch.mm() # 矩陣相乘
torch.norm(x, dim=1) #預設求2範數
torch.norm(x, p=1) # 求一範數
torch.exp()
### thop 庫 , 統計 pytorch 模型的 flops 和參數量
from thop import clever_format
from thop import profile
model = model(feature_dim).cuda()
input = randn(1,3,32,32)
flops, params = profile(model, inputs=input.cuda)
flops, params = clever_format([flops, params])
#檔案路徑
import os
if not os.path.exists('models'):
os.makedirs('models')
### pytorch 學習率衰減 lr_scheduler
### torch.optim.lr_scheduler 提供了一些基於 epoch 調整學習率的方法,基本使用方法如下:
from torch.optim.lr_scheduler import steplr
# assuming optimizer uses lr = 0.05 for all groups
# lr = 0.05 if epoch < 30
# lr = 0.005 if 30 <= epoch < 60
# lr = 0.0005 if 60 <= epoch < 90
# ...
optimizer = torch.optim.sgd(model.parameters(), lr=0.05, momentum=0.9, weight_decay=1e-4)
scheduler = steplr(optimizer, step_size=30, gamma=0.1)
for epoch in range(start_epoch, epochs):
train(...)
validate(...)
scheduler.step()
pytorch 學習率衰減 lr_scheduler~1
pytorch 學習率衰減 lr_scheduler~2
Pytorch的基本操作
建立 檢視形狀 建立指定形式的張量 操作方法 加減乘除 以及操作裝置 cpu gpu 1 torch.tesor 建立張量 2 torch.view 對張量進行降維 3 torch.size 檢視張量的形狀 4 torch.ones torch.zeros 建立指定形式的張量 5 torch.to ...
PyTorch入門(三)PyTorch常用操作
def bilinear kernel in channels,out channels,kernel size return a bilinear kernel tensor tensor in channels,out channels,kernel size,kernel size 返回雙線性...
pytorch常用函式
torch.cat torch.squeeze torch.unsqueeze torch.stack torch.sum torch.sum input dim,out none tensor input tensor 輸入張量 dim int 縮減的維度 out tensor,optional ...