日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Pytorch】常用函数功能介绍和注意事项

發(fā)布時(shí)間:2024/3/12 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Pytorch】常用函数功能介绍和注意事项 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【持續(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)化器的步驟

  • 獲取損失:loss=loss_fuction(out,batch_y)
  • 清空上一步殘余更新參數(shù):opt.zero_grad()
  • 誤差反向傳播:loss.backward()
  • 將參數(shù)更新值施加到net的parmeter上:opt.step()
  • 模型相關(guān)參數(shù)配置(使用argparse.ArgumentParser)

    簡介

    argparse是一個(gè)Python模塊:命令行選項(xiàng)、參數(shù)和子命令解析器。

    使用方法

  • 創(chuàng)建解析器
  • parser = argparse.ArgumentParser(description='Process some integers.')
  • 添加參數(shù)
  • parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator')

    例如在神經(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')
  • 解析參數(shù)
  • args = parser.parse_args()

    模型輸出

    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è)元素對應(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】常用函数功能介绍和注意事项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。