摘要:的安裝官網下載安裝包首先,我們可以到官網的專區進行安裝包的下載,網址是,因為我使用的版本是,版本是,版本是,我選擇了這一版。但我們會發現和這兩個文件夾是不存在的,我們可以去這個網址進行下載,然后使用命令解壓在對應的文件夾中。
????????TensorRT是Nvidia為了加速基于自家GPU訓練模型的推理而設計的,當我們將模型訓練好后,TensorRT可以直接對模型進行網絡層的一一對應,從而加速比較大模型的推理部署。最近使用TensorRT加速了一些模型,我將用兩篇文章對使用過程和其中遇到的坑進行記錄說明。本篇文章將對通用模型的TensorRT轉換進行一個記錄,對transformer類模型的轉換我們將在下一篇文章進行記錄。本文記錄的安裝基于TensorRT6.0。
? ? ? ? 首先,我們可以到nvidia官網的tensorrt專區進行安裝包的下載,網址是https://developer.nvidia.com/nvidia-tensorrt-download,因為我使用的ubuntu版本是18.04,python版本是3.6,cuda版本是10.1,我選擇了TensorRT 6.0.1.5 GA for Ubuntu 18.04 and CUDA 10.1 tar package這一版。在官網中有對系統版本和python版本的對照關系進行說明,可自行對照。
? ? ? ? 在安裝TensorRT之前,我們首先使用pip安裝pycuda
pip install pycuda
? ? ? ? 然后我們進行TensorRT的安裝。
## 解壓安裝包tar zxvf TensorRT-6.0.1.5.Ubuntu-18.04.x86_64-gnu.cuda-10.1.cudnn7.6.tar## 將TensorRT的庫安裝到系統庫中sudo cp -r ~/TensorRT-6.0.1.5/lib/* /usr/libsudo cp -r ~/TensorRT-6.0.1.5/include/* /usr/include# 安裝TensorRTpip install ~/TensorRT-6.0.1.5/python/tensorrt-6.0.1.5-cp36-none-linux_x86_64.whl # 安裝UFF,這是轉換模型的工具pip install ~/TensorRT-6.0.1.5/uff/uff-0.6.5-py2.py3-none-any.whl # 安裝graphsurgeonpip install ~/TensorRT-6.0.1.5/graphsurgenon/graphsurgeon-0.4.1-py2.py3-none-any.whl#最后,我們將TensorRT的lib絕對路徑添加到環境變量中export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/TensorRT-6.0.1.5/lib
?????????到此為止我們就安裝好了TensorRT,沒有遇到任何坑。使用下述語句可以測試我們是否安裝成功。
import tensorrtimport uff
? ? ? ? 我們使用TensorRT給的例子end_to_end_tensorflow_mnist進行簡單的使用說明。
## 首先,我們進入例子代碼cd ~/TensorRT-6.0.1.5/samples/python/end_to_end_tensorflow_mnist## 然后,我們建一個models的文件夾mkdir models## 運行model.py文件,我們可以在models文件夾中獲得lenet5.pbpython models.py## 進行模型轉換convert-to-uff ./models/lenet5.pb
????????此時我們會得到模型生成的pb文件,然后我們使用convert-to-uff進行模型轉換,但會遇到下面的錯誤?
bash: convert-to-uff: command not found
????????我們使用https://forums.developer.nvidia.com/t/convert-to-uff-command-not-found/116782中給出的解決方法進行處理。
UFF_PATH="$(python -c "import uff; print(uff.__path__[0])")"chmod +x ${UFF_PATH}/bin/convert_to_uff.pyln -sf ${UFF_PATH}/bin/convert_to_uff.py /usr/local/bin/convert-to-uff
? ? ? ? 此時重新運行轉換語句便可以對模型進行轉化,我們會在models文件夾下得到lenet5.uff文件。
## 測試轉化的模型python sample.py
? ? ? ? 遇到問題Could not find 8.pgm. Searched in data paths: ["~/Tensorrt-6.0.1.5/data/mnist"],參照https://github.com/NVIDIA/TensorRT/issues/256#issuecomment-568382745進行問題解答。
python /opt/tensorrt/data/mnist/generate_pgms.py -d /opt/tensorrt/data/mnist/train-images-idx3-ubyte -l /opt/tensorrt/data/mnist/train-labels-idx1-ubyte -o /opt/tensorrt/data/mnist
? ? ? ? 但我們會發現train-images-idx1-ubyte和train-labels-idx1-ubyte這兩個文件夾是不存在的,我們可以去https://github.com/Manuel4131/GoMNIST/tree/master/data這個網址進行下載,然后使用gzip -d命令解壓在對應的文件夾中。
? ? ? ? 當我們上述步驟都運行完后,我們就可以重新運行python sample.py。此時我們便可以得到運行結果了。
? ? ? ? 在本篇文章中,我們對tensorrt的安裝和簡單使用進行了說明。但筆者主要是從事NLP方向,希望加速的模型是bert類模型。直接使用convert-to-uff只能對簡單的網絡層進行轉換,并不能對transformer進行轉換。因此在下一篇文章中,筆者將記錄使用TensorRT轉換bert類模型的步驟和在其中遇到的坑。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/119997.html
摘要:沒有顯卡也沒有關系,可以看看我前面發布的兩篇文章谷歌云計算平臺,免費又好用上安裝本文采用的深度學習模型是雅虎開源的深度學習色情圖片檢測模型,這里的代表,該項目基于框架。你還可以讀利用人工智能檢測色情圖片谷歌云計算平臺,免費又好用上安裝隨著互聯網的快速發展,越來越多的圖片和視頻出現在網絡,特別是UCG產品,激發人們上傳圖片和視頻的熱情,比如微信每天上傳的圖片就高達10億多張。每個人都可以上傳,...
閱讀 3962·2021-09-22 10:02
閱讀 3379·2019-08-30 15:52
閱讀 3071·2019-08-30 12:51
閱讀 770·2019-08-30 11:08
閱讀 2072·2019-08-29 15:18
閱讀 3115·2019-08-29 12:13
閱讀 3606·2019-08-29 11:29
閱讀 1882·2019-08-29 11:13