企業(yè)網(wǎng)站建設(shè)費(fèi)現(xiàn)金流科目seo公司官網(wǎng)
目錄
tensorRT介紹
前置準(zhǔn)備
安裝cuda與cudnn
linux
windows
cuda版本查看
下載安裝包
linux安裝
安裝
安裝驗(yàn)證
windows安裝
安裝
環(huán)境變量配置
安裝驗(yàn)證
tensorRT介紹
有關(guān)tensorRT的介紹見
TensorRT簡介-CSDN博客
前置準(zhǔn)備
安裝cuda與cudnn
linux
Linux下安裝cuda和對應(yīng)版本的cudnn_linux怎么在自己的環(huán)境中安裝cuda和cudnn-CSDN博客
windows
windows安裝cuda與cudnn-CSDN博客
cuda版本查看
linux與windows均可使用以下命令查看cuda版本
nvcc -V
下載安裝包
進(jìn)官網(wǎng)查看對應(yīng)自己cuda版本的tensorRT
TensorRT Download | NVIDIA Developer
官網(wǎng)頁面打開如下所示, 每個版本的tensorRT都有對應(yīng)操作系統(tǒng)與cuda版本的說明
注意,win11只能只有tensorRT10支持
linux下我們以安裝tensorRT8為例,如下圖所示?,第一個紅色框是cuda11對應(yīng)的安裝包,第二個紅色方框是cuda12對應(yīng)的安裝包,找到自己對應(yīng)cuda版本的安裝包即可,建議下載tar包,安裝比較方便
同理,windows11下只要tensorRT10支持,如下圖所示,仍舊找到自己的安裝包下載即可
linux安裝
安裝
下載好安裝包后,將文件解壓至?/usr/local,如下所示
?然后將tensorrt的頭文件和庫文件加入到環(huán)境變量中,配置~/.bashrc文件
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/TensorRT-8.5.3.1/lib
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/TensorRT-8.5.3.1/include
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/TensorRT-8.5.3.1/include
?添加完路徑后使配置文件生效
source ~/.bashrc
安裝驗(yàn)證
進(jìn)入到 /usr/local/TensorRT-8.5.3.1/samples/sampleOnnxMNIST路徑下,執(zhí)行
sudo make
進(jìn)入/usr/local/TensorRT-8.5.3.1/bin目錄,運(yùn)行可執(zhí)行文件sample_onnx_mnist,如果編譯和運(yùn)行過程都沒有問題則說明tensorrt安裝成功,運(yùn)行結(jié)果如下
?
windows安裝
安裝
首先找到自己cuda的安裝路徑,打開cmd命令行窗口,輸入
which nvcc
如果cuda安裝成功,會顯示cuda的安裝路徑
/c/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v12.1/bin/nvcc
?然后解壓下載的tensorRT安裝包,將tensorRT中l(wèi)ib目錄和include目錄中的文件內(nèi)容都拷貝到cuda對應(yīng)的目錄文件下
環(huán)境變量配置
右鍵“此電腦”,點(diǎn)擊"屬性",點(diǎn)擊“高級系統(tǒng)設(shè)置”,即可打開系統(tǒng)屬性面板
也可以在搜索框輸入“編輯系統(tǒng)環(huán)境變量”,也可打開下述面板
然后點(diǎn)擊環(huán)境變量
用戶變量一欄,點(diǎn)擊Path
?點(diǎn)擊“新建”,將對應(yīng)TensorRT解壓的文件夾下的bin目錄路徑,以及cuda安裝目錄下的lib目錄、include目錄,以及l(fā)ib下的x64目錄路徑設(shè)置進(jìn)去,如下所示
?然后逐步點(diǎn)擊“確定”,直到所有面板關(guān)閉,一定不要直接點(diǎn)右上角關(guān)閉,否則配置會失敗
安裝驗(yàn)證
打開cmd命令窗口,輸入
trtexec --help
如果顯示以下幫助信息,說明TensorRT中的trtexec程序可用,否則檢查trtexec程序(TensorRT解壓安裝包的bin目錄下)的環(huán)境變量是否配置正確
接下來代碼驗(yàn)證trtexec是否可成功執(zhí)行,打開python,寫下如下python代碼,更多代碼細(xì)節(jié)見
PyTorch模型轉(zhuǎn)換ONNX 入門-CSDN博客
import torch
import torchvision.models as models
import onnx
import onnxruntime# 加載 PyTorch 模型
model = models.resnet18(pretrained=True)
model.eval()# 定義輸入和輸出張量的名稱和形狀
input_names = ["input"]
output_names = ["output"]
batch_size = 1
input_shape = (batch_size, 3, 224, 224)
output_shape = (batch_size, 1000)# 將 PyTorch 模型轉(zhuǎn)換為 ONNX 格式
torch.onnx.export(model, # 要轉(zhuǎn)換的 PyTorch 模型torch.randn(input_shape), # 模型輸入的隨機(jī)張量"resnet18.onnx", # 保存的 ONNX 模型的文件名input_names=input_names, # 輸入張量的名稱output_names=output_names, # 輸出張量的名稱dynamic_axes={input_names[0]: {0: "batch_size"}, output_names[0]: {0: "batch_size"}} # 動態(tài)軸,即輸入和輸出張量可以具有不同的批次大小
)# 加載 ONNX 模型
onnx_model = onnx.load("resnet18.onnx")
onnx_model_graph = onnx_model.graph
onnx_session = onnxruntime.InferenceSession(onnx_model.SerializeToString())# 使用隨機(jī)張量測試 ONNX 模型
x = torch.randn(input_shape).numpy()
onnx_output = onnx_session.run(output_names, {input_names[0]: x})[0]print(f"PyTorch output: {model(torch.from_numpy(x)).detach().numpy()[0, :5]}")
print(f"ONNX output: {onnx_output[0, :5]}")
如果代碼運(yùn)行不成功,查看pytorch是否安裝、onnx模塊是否安裝、onnxruntime模塊是否安裝
如果代碼運(yùn)行成功,會在本地輸出一個mymodel.onnx文件
接下來打開該文件所在路徑,打開cmd,輸入
trtexec --onnx=mymodel.onnx --saveEngine=model.trt
如果運(yùn)行成功,說明TensorRT安裝成功
如果這里運(yùn)行失敗,檢查環(huán)境變量是否配置正確?
參考
ubuntu20.04 安裝TensorRT c++庫 - Wangtn - 博客園 (cnblogs.com)
TensorRT安裝部署指南(Windows10) - 知乎 (zhihu.com)