色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TorchScript model與eager model的性能區別

麥辣雞腿堡 ? 來源:古月居 ? 作者:bug404 ? 2023-11-08 17:08 ? 次閱讀

JIT Trace

torch.jit.trace使用eager model和一個dummy input作為輸入,tracer會根據提供的model和input記錄數據在模型中的流動過程,然后將整個模型轉換為TorchScript module??匆粋€具體的例子:

我們使用BERT(Bidirectional Encoder Representations from Transformers)作為例子。

from transformers import BertTokenizer, BertModel
import numpy as np
import torch
from time import perf_counter


def timer(f,*args):   


    start = perf_counter()
    f(*args)
    return (1000 * (perf_counter() - start))


# 加載bert model
native_model = BertModel.from_pretrained("bert-base-uncased")
# huggingface的API中,使用torchscript=True參數可以直接加載TorchScript model
script_model = BertModel.from_pretrained("bert-base-uncased", torchscript=True)


script_tokenizer = BertTokenizer.from_pretrained('bert-base-uncased', torchscript=True)






# Tokenizing input text
text = "[CLS] Who was Jim Henson ? [SEP] Jim Henson was a puppeteer [SEP]"
tokenized_text = script_tokenizer.tokenize(text)


# Masking one of the input tokens
masked_index = 8


tokenized_text[masked_index] = '[MASK]'


indexed_tokens = script_tokenizer.convert_tokens_to_ids(tokenized_text)


segments_ids = [0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1]


# Creating a dummy input
tokens_tensor = torch.tensor([indexed_tokens])
segments_tensors = torch.tensor([segments_ids])

然后分別在CPUGPU上測試eager mode的pytorch推理速度。

# 在CPU上測試eager model推理性能
native_model.eval()
np.mean([timer(native_model,tokens_tensor,segments_tensors) for _ in range(100)])


# 在GPU上測試eager model推理性能
native_model = native_model.cuda()
native_model.eval()
tokens_tensor_gpu = tokens_tensor.cuda()
segments_tensors_gpu = segments_tensors.cuda()
np.mean([timer(native_model,tokens_tensor_gpu,segments_tensors_gpu) for _ in range(100)])

再分別在CPU和GPU上測試script mode的TorchScript模型的推理速度

# 在CPU上測試TorchScript性能
traced_model = torch.jit.trace(script_model, [tokens_tensor, segments_tensors])
# 因模型的trace時,已經包含了.eval()的行為,因此不必再去顯式調用model.eval()
np.mean([timer(traced_model,tokens_tensor,segments_tensors) for _ in range(100)])


# 在GPU上測試TorchScript的性能

最終運行結果如表

圖片

我使用的硬件規格是google colab,cpu是Intel(R) Xeon(R) CPU @ 2.00GHz,GPU是Tesla T4。

從結果來看,在CPU上,TorchScript比pytorch eager快了3.5%,在GPU上,TorchScript比pytorch快了55.6%。

然后我們再用ResNet做一個測試。

import torchvision
import torch
from time import perf_counter
import numpy as np


def timer(f,*args):   
    start = perf_counter()
    f(*args)
    return (1000 * (perf_counter() - start))


# Pytorch cpu version


model_ft = torchvision.models.resnet18(pretrained=True)
model_ft.eval()
x_ft = torch.rand(1,3, 224,224)
print(f'pytorch cpu: {np.mean([timer(model_ft,x_ft) for _ in range(10)])}')


# Pytorch gpu version


model_ft_gpu = torchvision.models.resnet18(pretrained=True).cuda()
x_ft_gpu = x_ft.cuda()
model_ft_gpu.eval()
print(f'pytorch gpu: {np.mean([timer(model_ft_gpu,x_ft_gpu) for _ in range(10)])}')


# TorchScript cpu version


script_cell = torch.jit.script(model_ft, (x_ft))
print(f'torchscript cpu: {np.mean([timer(script_cell,x_ft) for _ in range(10)])}')


# TorchScript gpu version


script_cell_gpu = torch.jit.script(model_ft_gpu, (x_ft_gpu))
print(f'torchscript gpu: {np.mean([timer(script_cell_gpu,x_ft.cuda()) for _ in range(100)])}')

圖片

TorchScript相比PyTorch eager model,CPU性能提升4.2%,GPU性能提升45%。與Bert的結論一致。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    10899

    瀏覽量

    212617
  • 數據
    +關注

    關注

    8

    文章

    7128

    瀏覽量

    89365
  • 模型
    +關注

    關注

    1

    文章

    3294

    瀏覽量

    49037
收藏 人收藏

    評論

    相關推薦

    DAC5672的model 有沒有其他格式的?

    DAC問題 誰可以提供DAC5672的 *** model,或提供與DAC5672性能相近的DAC的model 也可以,還是說TI的網站上,對于DAC除了有IBIS格式的,沒有其他格式的嗎?希望大家給個準信!
    發表于 01-21 06:14

    Java開發:Web開發模式——ModelⅠ#Java

    JAVAModel
    學習硬聲知識
    發布于 :2022年11月16日 13:25:45

    Java開發:Web開發模式——ModelⅡ#Java

    JAVAModel
    學習硬聲知識
    發布于 :2022年11月16日 13:26:13

    PSpice如何利用Model Editor建立模擬用的Model

    PSpice 提供Model Editor 建立組件的Model,從組件供貨商那邊拿該組件的Datasheet,透過描點的方式就可以簡單的建立組件的Model,來做電路的模擬。PSpice 如何利用
    發表于 03-31 11:38

    IC設計基礎:說說wire load model

    說起wire load model,IC設計EDA流程工程師就會想到DC的兩種工具模式:線負載模式(wire load mode)和拓撲模式(topographicalmode)。為什么基本所有深亞
    發表于 05-21 18:30

    使用Redis緩存model

    〈譯〉使用REDIS處理RAILS MODEL緩存
    發表于 04-18 17:07

    Model B的幾個PCB版本

    盡管樹莓派最新版的型號Model B+目前有著512 MB的內存和4個USB端口,但這些都不會是一成不變的。除了Model B+外,標準的Model B還有兩個變種的型號。如果你買到的是一個雙面的樹莓派
    發表于 08-08 07:17

    Model3電機是什么

    Model3電機拆解 汽車攻城獅交流異步電機交流異步電機也叫感應電機,由定子和轉子組成。定子鐵芯一般由硅鋼片疊壓而成,有良好的導磁性能,定子鐵芯的內圓上有分布均勻的槽口,這個槽口是用來安放定子繞組的
    發表于 08-26 09:12

    Cycle Model Studio 9.2版用戶手冊

    性能可鏈接對象,稱為Cycle Model,它既精確于循環,又精確于寄存器。循環模型提供了與驗證環境對接的功能。 此外,Cycle Model Studio可以編譯與特定設計平臺兼容的模型,如SoC
    發表于 08-12 06:26

    性能全面升級的特斯拉Model S/Model X到來

     據外媒7月3日消息,在全新車型Model 3即將上市之際,特斯拉公布了對其現有兩款車型Model S和Model X的一系列升級,旨在提高其非性能車型的加速能力。
    發表于 07-06 09:13 ?1491次閱讀

    Model Y車型類似Model3 但續航里程會低于Model3

    馬斯克在連續發布了Model3標準版上市、關閉線下門店等多項重大消息之后,繼續放大招,在Twitter上,馬斯克表示,將于3月14日在洛杉磯發布旗下跨界SUV Model Y純電動汽車根據馬斯克此前
    發表于 03-05 16:17 ?2273次閱讀
    <b class='flag-5'>Model</b> Y車型類似<b class='flag-5'>Model</b>3 但續航里程會低于<b class='flag-5'>Model</b>3

    仿真器與Model的本質區別

    仿真器所需的“時間”和“精度”怎么協調?想快就向Digital仿真器靠攏;想準就向Analog靠攏。做Model不是做加法、就是做減法。做Analog出身的熟悉Schematic
    的頭像 發表于 06-08 17:23 ?6691次閱讀

    特斯拉再次調整Model 3/Model Y長續航版的售價

    2月22日消息,據國外媒體報道,在對標準續航升級版和Performance高性能版價格進行調整后,特斯拉再次調整Model 3/Model Y長續航版的起售價。
    的頭像 發表于 02-22 10:23 ?4165次閱讀

    特斯拉Model Y高性能版國內正式交付

    近日,首批特斯拉Model Y高性能版車型已經正式啟動交付,新款特斯拉Model Y在動力方面比標準版和長續航版更強。目前Model Y已經取得了不錯的銷量,特斯拉
    的頭像 發表于 11-25 16:06 ?8949次閱讀

    TorchScript的重要特性和用途

    PyTorch支持兩種模式:eager模式和script模式。eager模式主要用于模型的編寫、訓練和調試,script模式主要是針對部署的,其包含PytorchJIT和TorchScript(一種
    的頭像 發表于 11-08 16:56 ?526次閱讀
    主站蜘蛛池模板: 视频成人app永久在线观看| 肉动漫无码无删减在线观看| 色婷婷AV99XX| 丰满艳妇亲伦| 色欲精品国产AV久久久| 动漫美女喷水| 色人格影院第四色| 国产99小视频| 午夜精品久久久久久99热蜜桃| 国产成人啪精品视频免费网 | 高跟丝袜岳第一次| 日韩精品卡1卡2三卡四卡乱码| av在线色| 欧美亚洲国内日韩自拍视频| 91天仙tv嫩模福利| 欧美亚洲另类热图| 成人亚洲乱码在线| 午夜宅宅伦电影网| 含羞草影院AE在线观看| 大桥未久在线看| 肉欲横流(NP高H)| 国产精品九九久久精品视| 性一交一乱一色一视频| 狠狠色综合久久丁香婷婷| 日本久久久久久久做爰片日本| 成年人免费在线视频观看| 久久精品国产免费| 中文字幕久精品视频在线观看| 美女图片131亚洲午夜| WWW污污污抽搐喷潮COM| 四虎免费影院| 精品无码国产污污污免费网站2 | 国产这里有精品| 樱花草在线观看影院| 蜜臀AV精品一区二区三区| 超碰国产视频免费播放| 亚洲an天堂an在线观看| 伦理片在线线手机版韩国免费观看 | 芳草地在线观看免费视频| 亚洲国产成人精品无码区5566 | 99视频精品国产免费观看|