婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > pytorch 使用半精度模型部署的操作

pytorch 使用半精度模型部署的操作

熱門標(biāo)簽:江西省地圖標(biāo)注 如何申請(qǐng)400電話費(fèi)用 富錦商家地圖標(biāo)注 沈陽(yáng)外呼系統(tǒng)呼叫系統(tǒng) 池州外呼調(diào)研線路 武漢外呼系統(tǒng)平臺(tái) 沈陽(yáng)人工外呼系統(tǒng)價(jià)格 外呼系統(tǒng)哪些好辦 沈陽(yáng)防封電銷卡品牌

背景

pytorch作為深度學(xué)習(xí)的計(jì)算框架正得到越來越多的應(yīng)用.

我們除了在模型訓(xùn)練階段應(yīng)用外,最近也把pytorch應(yīng)用在了部署上.

在部署時(shí),為了減少計(jì)算量,可以考慮使用16位浮點(diǎn)模型,而訓(xùn)練時(shí)涉及到梯度計(jì)算,需要使用32位浮點(diǎn),這種精度的不一致經(jīng)過測(cè)試,模型性能下降有限,可以接受.

但是推斷時(shí)計(jì)算量可以降低一半,同等計(jì)算資源下,并發(fā)度可提升近一倍

具體方法

在pytorch中,一般模型定義都繼承torch.nn.Moudle,torch.nn.Module基類的half()方法會(huì)把所有參數(shù)轉(zhuǎn)為16位浮點(diǎn),所以在模型加載后,調(diào)用一下該方法即可達(dá)到模型切換的目的.接下來只需要在推斷時(shí)把input的tensor切換為16位浮點(diǎn)即可

另外還有一個(gè)小的trick,在推理過程中模型輸出的tensor自然會(huì)成為16位浮點(diǎn),如果需要新創(chuàng)建tensor,最好調(diào)用已有tensor的new_zeros,new_full等方法而不是torch.zeros和torch.full,前者可以自動(dòng)繼承已有tensor的類型,這樣就不需要到處增加代碼判斷是使用16位還是32位了,只需要針對(duì)input tensor切換.

補(bǔ)充:pytorch 使用amp.autocast半精度加速訓(xùn)練

準(zhǔn)備工作

pytorch 1.6+

如何使用autocast?

根據(jù)官方提供的方法,

答案就是autocast + GradScaler。

如何在PyTorch中使用自動(dòng)混合精度?

答案:autocast + GradScaler。

1.autocast

正如前文所說,需要使用torch.cuda.amp模塊中的autocast 類。使用也是非常簡(jiǎn)單的

from torch.cuda.amp import autocast as autocast

# 創(chuàng)建model,默認(rèn)是torch.FloatTensor
model = Net().cuda()
optimizer = optim.SGD(model.parameters(), ...)

for input, target in data:
    optimizer.zero_grad()

    # 前向過程(model + loss)開啟 autocast
    with autocast():
        output = model(input)
        loss = loss_fn(output, target)

    # 反向傳播在autocast上下文之外
    loss.backward()
    optimizer.step()

2.GradScaler

GradScaler就是梯度scaler模塊,需要在訓(xùn)練最開始之前實(shí)例化一個(gè)GradScaler對(duì)象。

因此PyTorch中經(jīng)典的AMP使用方式如下:

from torch.cuda.amp import autocast as autocast

# 創(chuàng)建model,默認(rèn)是torch.FloatTensor
model = Net().cuda()
optimizer = optim.SGD(model.parameters(), ...)
# 在訓(xùn)練最開始之前實(shí)例化一個(gè)GradScaler對(duì)象
scaler = GradScaler()

for epoch in epochs:
    for input, target in data:
        optimizer.zero_grad()

        # 前向過程(model + loss)開啟 autocast
        with autocast():
            output = model(input)
            loss = loss_fn(output, target)

        scaler.scale(loss).backward()
        scaler.step(optimizer)
        scaler.update()

3.nn.DataParallel

單卡訓(xùn)練的話上面的代碼已經(jīng)夠了,親測(cè)在2080ti上能減少至少1/3的顯存,至于速度。。。

要是想多卡跑的話僅僅這樣還不夠,會(huì)發(fā)現(xiàn)在forward里面的每個(gè)結(jié)果都還是float32的,怎么辦?

class Model(nn.Module):
    def __init__(self):
        super(Model, self).__init__()

    def forward(self, input_data_c1):
     with autocast():
      # code
     return

只要把forward里面的代碼用autocast代碼塊方式運(yùn)行就好啦!

自動(dòng)進(jìn)行autocast的操作

如下操作中tensor會(huì)被自動(dòng)轉(zhuǎn)化為半精度浮點(diǎn)型的torch.HalfTensor:

1、matmul

2、addbmm

3、addmm

4、addmv

5、addr

6、baddbmm

7、bmm

8、chain_matmul

9、conv1d

10、conv2d

11、conv3d

12、conv_transpose1d

13、conv_transpose2d

14、conv_transpose3d

15、linear

16、matmul

17、mm

18、mv

19、prelu

那么只有這些操作才能半精度嗎?不是。其他操作比如rnn也可以進(jìn)行半精度運(yùn)行,但是需要自己手動(dòng),暫時(shí)沒有提供自動(dòng)的轉(zhuǎn)換。

您可能感興趣的文章:
  • 關(guān)于pytorch多GPU訓(xùn)練實(shí)例與性能對(duì)比分析
  • 在pytorch 中計(jì)算精度、回歸率、F1 score等指標(biāo)的實(shí)例
  • pytorch訓(xùn)練imagenet分類的方法
  • PyTorch預(yù)訓(xùn)練Bert模型的示例

標(biāo)簽:通遼 阿里 株洲 銅川 黑龍江 潛江 呂梁 常德

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《pytorch 使用半精度模型部署的操作》,本文關(guān)鍵詞  pytorch,使用,半,精度,模型,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《pytorch 使用半精度模型部署的操作》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于pytorch 使用半精度模型部署的操作的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    这里只有精品视频在线观看| 在线观看中文字幕不卡| 成人av在线观| 久久亚洲私人国产精品va媚药| 日本视频在线一区| 91麻豆精品91久久久久同性| 日韩国产欧美在线观看| 欧美高清视频在线高清观看mv色露露十八 | 日韩欧美国产一二三区| 亚洲永久精品国产| 欧美视频一区二| 日韩和欧美的一区| 久久精品日韩一区二区三区| 国产精品一级片在线观看| 日韩丝袜情趣美女图片| 美女国产一区二区三区| 国产日韩欧美a| 另类小说一区二区三区| 精品视频免费在线| 亚洲成人资源网| 日韩丝袜美女视频| 成人av在线一区二区三区| 国产精品毛片久久久久久| 欧洲av在线精品| 国产一区二区三区美女| 国产精品欧美极品| 欧美日韩日日摸| 国产suv精品一区二区三区| 一区二区三区丝袜| 久久久久久免费毛片精品| 一本一道久久a久久精品| 麻豆精品视频在线| 亚洲蜜桃精久久久久久久| 日韩视频免费直播| 91免费在线看| 国产精品主播直播| 日韩不卡一区二区| 亚洲三级在线观看| 国产日韩欧美精品在线| 7878成人国产在线观看| 一本一道综合狠狠老| 懂色av一区二区三区免费看| 日本视频免费一区| 一区二区三区四区视频精品免费| 久久一夜天堂av一区二区三区| 色天使久久综合网天天| 国产999精品久久| 亚洲精品在线电影| 欧美xxxxx牲另类人与| 成人av网站免费| 精品一区二区三区视频在线观看| 亚洲欧洲精品一区二区三区| 日韩视频一区在线观看| 欧洲精品在线观看| 色先锋久久av资源部| 国产成人啪免费观看软件| 日本三级亚洲精品| 亚洲不卡在线观看| 一区二区三区在线播| 国产欧美日韩精品a在线观看| 日韩一区二区精品| 日韩一二三区不卡| 91精品国产欧美一区二区18 | 亚州成人在线电影| 国产日产欧美一区二区视频| 日韩一级片在线播放| 欧美猛男男办公室激情| 欧美中文字幕一区| 欧美三级乱人伦电影| 色8久久人人97超碰香蕉987| 91网上在线视频| 国产69精品久久久久毛片| 国内精品自线一区二区三区视频| 日韩高清不卡在线| 男女视频一区二区| 久久99久久精品欧美| 精品系列免费在线观看| 亚洲色图一区二区| 亚洲欧洲日韩av| 一个色综合av| 首页国产欧美久久| 美女视频黄免费的久久| 国产一区二区三区综合| 成人性生交大片免费看视频在线| 成人深夜在线观看| 在线观看av不卡| 欧美一级高清片在线观看| 2021中文字幕一区亚洲| 国产精品美女一区二区| 亚洲综合一区在线| 精品一二线国产| av一区二区三区| 欧美理论片在线| 国产欧美一区二区在线| 成人免费一区二区三区在线观看| 亚洲最新在线观看| 国产主播一区二区三区| 色婷婷久久综合| 精品国产91洋老外米糕| 国产精品国产三级国产普通话蜜臀 | 欧美激情一区在线观看| 亚洲另类春色国产| 美女网站视频久久| 99精品视频一区二区| 欧美一激情一区二区三区| 一色桃子久久精品亚洲| 久久精品72免费观看| 91黄色免费观看| 久久久久国产成人精品亚洲午夜| 亚洲激情校园春色| 国产一区二区美女| 欧美日韩电影一区| 综合婷婷亚洲小说| 国产成人三级在线观看| 日韩久久免费av| 亚洲国产成人高清精品| 不卡大黄网站免费看| 欧美va亚洲va香蕉在线| 亚洲精品国产第一综合99久久| 久久黄色级2电影| 欧美日韩久久一区| 一区二区三区在线观看欧美| 成人免费毛片高清视频| 欧美精品一区二区高清在线观看| 天天影视涩香欲综合网| 色综合久久88色综合天天免费| 国产精品美女久久久久av爽李琼 | 石原莉奈在线亚洲二区| 不卡av电影在线播放| 欧美zozozo| 国产一区啦啦啦在线观看| 日韩视频国产视频| 秋霞午夜av一区二区三区| 欧美日韩国产在线播放网站| 《视频一区视频二区| 不卡一卡二卡三乱码免费网站| 国产免费观看久久| 成人性色生活片| 中文字幕中文乱码欧美一区二区| 紧缚奴在线一区二区三区| 精品理论电影在线| 国产麻豆精品在线| 久久精品一区八戒影视| 成人一区二区三区在线观看 | 天天操天天干天天综合网| 欧美日韩一区二区不卡| 亚洲二区在线观看| 91超碰这里只有精品国产| 日产国产欧美视频一区精品| 日韩欧美的一区二区| 激情深爱一区二区| 国产欧美日韩一区二区三区在线观看| 天堂精品中文字幕在线| 日韩精品一区二区三区swag| 国产在线视频一区二区三区| 中文字幕巨乱亚洲| 91免费观看视频在线| 三级亚洲高清视频| 久久久久久久久一| 91一区二区三区在线观看| 亚洲成av人片在www色猫咪| 精品国产成人在线影院| 91麻豆免费观看| 蜜桃精品在线观看| 欧美国产成人精品| 欧美影视一区在线| 国产乱一区二区| 亚洲靠逼com| 久久婷婷久久一区二区三区| jizz一区二区| 日本视频免费一区| 中文字幕亚洲精品在线观看| 精品视频在线免费观看| 国产精品一级二级三级| 亚洲精品国久久99热| 精品剧情v国产在线观看在线| 99r国产精品| 美女视频黄频大全不卡视频在线播放| 国产欧美在线观看一区| 欧美一区二区福利视频| 99久久久国产精品| 极品美女销魂一区二区三区| 亚洲视频一区二区在线| 精品国免费一区二区三区| 欧洲另类一二三四区| av资源网一区| 国产一区二区看久久| 三级久久三级久久| 亚洲激情欧美激情| 综合久久综合久久| 国产午夜精品一区二区三区视频 | 亚洲自拍欧美精品| 久久人人97超碰com| 日韩亚洲欧美一区二区三区| 91福利社在线观看| 99久久99久久精品免费观看| 国产精品一区二区在线观看不卡| 美女一区二区视频| 免费成人av资源网| 天堂va蜜桃一区二区三区漫画版 |