# [在NVIDIA Jetson AGX Orin上透過TensorRT運行BEVFormer模型](https://hackmd.io/5Zql28X2T4SXrJ73KCmKrA)
## :question: 目標
:::success
學習如何成功將PyTorch模型轉換成tensorrt模型格式並在嵌入式平台進行推理
:::
## :feet: Step
:::success
前提概要: tensorrt會隨著jetpack包一起安裝,因此前幾章節有教學過如何在NVIDIA Jetson AGX Orin 上安裝jetpack,不知道的人可以參考[這篇](https://hackmd.io/4i9l0gUyTt-tNkvXK5lM2w),因此我們會從如何驗證tensorrt是否成功安裝開始教學
:::
1. 驗證tensorrt是否成功安裝
>注意: 要在base環境下做下個步驟,不要切環境(conda env activate..)
1. 打開終端機
2. 執行該命令
```
dpkg -l tensorrt
```
3. 出現如下圖所示代表有安裝tensorrt

2. :exclamation:**如果有項目是透過虛擬環境運行要執行這步驟**
1. 進入指定虛擬環境,並執行python
2. 輸入`import tensorrt`,驗證python是否讀的到,出現如下圖所示代表讀不到

3. 解決方法:輸入以下命令將tensorrt複製到env的資料夾裡
```
sudo cp -r tensorrt /home/ai/anaconda3/envs/uniad/lib/python3.8/site-packages/tensorrt
sudo cp -r tensorrt-8.4.0.11.dist-info/ /home/ai/anaconda3/envs/uniad/lib/python3.8/site-packages/tensorrt-8.4.0.11.dist-info
```


>注意: 請先確定好要複製到env裡的資料夾位置/home/ai/anaconda3/envs/uniad/lib/python3.8/site-packages/ 是我的位置這要替換成你自己的
4. 驗證是否複製成功,重複2.1和2.2的步驟,出現下圖所示代表成功

3. 透過torch.onnx.export 將.pth模型轉換成.onnx模型
1.遭遇問題(1) torch.nn.DataParallel is not supported by ONNX exporter, please use 'attribute' module to unwrap model from torch.nn.DataParallel. Try torch.onnx.export(model.module, ...

## :feet: NEXT
:::success
[安裝並運行Transformer模型(Uniad)上篇](https://hackmd.io/QSyaTdhWQPmy7xRWJXPw6Q)
:::
參考:
https://blog.csdn.net/condom10010/article/details/128146383
https://cloud.tencent.com/developer/article/2034571