【Pytorch】常用函数功能介绍和注意事项
【持續(xù)更新中…】
數(shù)據(jù)預(yù)處理
Variable
from torch.autograd import Variable作用:自動(dòng)微分變量,用于構(gòu)建計(jì)算圖
網(wǎng)絡(luò)層定義
torch.nn.BatchNorm2d()
設(shè)尺寸為N*C*H*W,其中N代表batchsize,C表示通道數(shù)(例如RGB三通道),H,W分別表示feature map的寬高。
torch.nn.BatchNorm2d(num_features, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True, device=None, dtype=None)- num_features:通道數(shù),例如RGB為3
- eps:一個(gè)加至分母的參數(shù),為提高計(jì)算穩(wěn)定性
- momentum:運(yùn)行中調(diào)整均值、方差的估計(jì)參數(shù)
- affine:當(dāng)設(shè)為true時(shí),給定可以學(xué)習(xí)的系數(shù)矩陣\gammaγ和 \beta
torch.nn.Linear()
torch.nn.Linear(in_features: int, out_features: int, bias: bool = True, device=None, dtype=None)- in_features:輸入的二維張量的大小
- out_features:輸出的二維張量的大小
torch.nn.Sequential()
self.conv4 = torch.nn.Sequential(torch.nn.Conv2d(64, 64, 2, 2, 0), torch.nn.BatchNorm2d(64), torch.nn.ReLU()#ReLU激活函數(shù)) self.mlp1 = torch.nn.Linear(2 * 2 * 64, 100)#torch.nn.Linear定義全連接層,conv4為2*2*64self.mlp2 = torch.nn.Linear(100, 10)使用損失函數(shù)和優(yōu)化器的步驟
模型相關(guān)參數(shù)配置(使用argparse.ArgumentParser)
簡(jiǎn)介
argparse是一個(gè)Python模塊:命令行選項(xiàng)、參數(shù)和子命令解析器。
使用方法
例如在神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程中,我們需要定義訓(xùn)練的初始學(xué)習(xí)率,并設(shè)置默認(rèn)值為0.00001,可通過以下代碼實(shí)現(xiàn):
parser.add_argument('--learning-rate', '-l', metavar='LR', type=float, default=1e-5,help='Learning rate', dest='lr')模型輸出
torch.max(out,1)[1]
output = torch.max(input, dim)
- input是softmax函數(shù)輸出的一個(gè)tensor
- dim是max函數(shù)索引的維度0/1,0是每列最大值,1是每行最大值
函數(shù)會(huì)返回兩個(gè)tensor,第一個(gè)tensor是每行的最大值;第二個(gè)tensor是每行最大值的索引。
(PS:第一個(gè)tensor value是不需要的,我們僅提取第二個(gè)tensor并將數(shù)據(jù)轉(zhuǎn)換為array格式)
torch.max(out,1)[1].numpy()
網(wǎng)絡(luò)參數(shù)查看
model_dict=torch.load('D:\JetBrains\pythonProject\CMRI\CNN\CNN_Log') parameters=list(model_dict.named_parameters())補(bǔ)充知識(shí)點(diǎn)
downsampling(向下采樣) & upsampling
down-sampling通過舍棄一些元素,實(shí)現(xiàn)圖像的縮放
在CNN中,匯合層(Pooling layer)通過max pooling 或average pooling等操作,使匯合后結(jié)果中一個(gè)元素對(duì)應(yīng)于原輸入數(shù)據(jù)的一個(gè)子區(qū)域,因此匯合操作實(shí)際上就是一種”降采樣“操作
up-sampling 可實(shí)現(xiàn)圖像的放大或分辨率的優(yōu)化等
常用方法:
- Bilinear(雙線性插值法):只需要設(shè)置好固定的參數(shù)值即可,設(shè)置的參數(shù)就是中心值需要乘以的系數(shù)。
- Deconvolution(反卷積):參考https://github.com/vdumoulin/conv_arithmetic
- Unpooling(反池化):在反池化過程中,將一個(gè)元素根據(jù)kernel進(jìn)行放大,根據(jù)之前的坐標(biāo)將元素填寫進(jìn)去,其他位置補(bǔ)0
總結(jié)
以上是生活随笔為你收集整理的【Pytorch】常用函数功能介绍和注意事项的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ida-IDC脚本剖析
- 下一篇: NIST cybersecurity f