摘要:的安裝官網(wǎng)下載安裝包首先,我們可以到官網(wǎng)的專區(qū)進(jìn)行安裝包的下載,網(wǎng)址是,因?yàn)槲沂褂玫陌姹臼?,版本是,版本是,我選擇了這一版。但我們會(huì)發(fā)現(xiàn)和這兩個(gè)文件夾是不存在的,我們可以去這個(gè)網(wǎng)址進(jìn)行下載,然后使用命令解壓在對(duì)應(yīng)的文件夾中。
????????TensorRT是Nvidia為了加速基于自家GPU訓(xùn)練模型的推理而設(shè)計(jì)的,當(dāng)我們將模型訓(xùn)練好后,TensorRT可以直接對(duì)模型進(jìn)行網(wǎng)絡(luò)層的一一對(duì)應(yīng),從而加速比較大模型的推理部署。最近使用TensorRT加速了一些模型,我將用兩篇文章對(duì)使用過(guò)程和其中遇到的坑進(jìn)行記錄說(shuō)明。本篇文章將對(duì)通用模型的TensorRT轉(zhuǎn)換進(jìn)行一個(gè)記錄,對(duì)transformer類模型的轉(zhuǎn)換我們將在下一篇文章進(jìn)行記錄。本文記錄的安裝基于TensorRT6.0。
? ? ? ? 首先,我們可以到nvidia官網(wǎng)的tensorrt專區(qū)進(jìn)行安裝包的下載,網(wǎng)址是https://developer.nvidia.com/nvidia-tensorrt-download,因?yàn)槲沂褂玫膗buntu版本是18.04,python版本是3.6,cuda版本是10.1,我選擇了TensorRT 6.0.1.5 GA for Ubuntu 18.04 and CUDA 10.1 tar package這一版。在官網(wǎng)中有對(duì)系統(tǒng)版本和python版本的對(duì)照關(guān)系進(jìn)行說(shuō)明,可自行對(duì)照。
? ? ? ? 在安裝TensorRT之前,我們首先使用pip安裝pycuda
pip install pycuda
? ? ? ? 然后我們進(jìn)行TensorRT的安裝。
## 解壓安裝包tar zxvf TensorRT-6.0.1.5.Ubuntu-18.04.x86_64-gnu.cuda-10.1.cudnn7.6.tar## 將TensorRT的庫(kù)安裝到系統(tǒng)庫(kù)中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,這是轉(zhuǎn)換模型的工具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絕對(duì)路徑添加到環(huán)境變量中export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/TensorRT-6.0.1.5/lib
?????????到此為止我們就安裝好了TensorRT,沒(méi)有遇到任何坑。使用下述語(yǔ)句可以測(cè)試我們是否安裝成功。
import tensorrtimport uff
? ? ? ? 我們使用TensorRT給的例子end_to_end_tensorflow_mnist進(jìn)行簡(jiǎn)單的使用說(shuō)明。
## 首先,我們進(jìn)入例子代碼cd ~/TensorRT-6.0.1.5/samples/python/end_to_end_tensorflow_mnist## 然后,我們建一個(gè)models的文件夾mkdir models## 運(yùn)行model.py文件,我們可以在models文件夾中獲得lenet5.pbpython models.py## 進(jìn)行模型轉(zhuǎn)換convert-to-uff ./models/lenet5.pb
????????此時(shí)我們會(huì)得到模型生成的pb文件,然后我們使用convert-to-uff進(jìn)行模型轉(zhuǎn)換,但會(huì)遇到下面的錯(cuò)誤?
bash: convert-to-uff: command not found
????????我們使用https://forums.developer.nvidia.com/t/convert-to-uff-command-not-found/116782中給出的解決方法進(jìn)行處理。
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
? ? ? ? 此時(shí)重新運(yùn)行轉(zhuǎn)換語(yǔ)句便可以對(duì)模型進(jìn)行轉(zhuǎn)化,我們會(huì)在models文件夾下得到lenet5.uff文件。
## 測(cè)試轉(zhuǎn)化的模型python sample.py
? ? ? ? 遇到問(wèn)題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進(jìn)行問(wèn)題解答。
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
? ? ? ? 但我們會(huì)發(fā)現(xiàn)train-images-idx1-ubyte和train-labels-idx1-ubyte這兩個(gè)文件夾是不存在的,我們可以去https://github.com/Manuel4131/GoMNIST/tree/master/data這個(gè)網(wǎng)址進(jìn)行下載,然后使用gzip -d命令解壓在對(duì)應(yīng)的文件夾中。
? ? ? ? 當(dāng)我們上述步驟都運(yùn)行完后,我們就可以重新運(yùn)行python sample.py。此時(shí)我們便可以得到運(yùn)行結(jié)果了。
? ? ? ? 在本篇文章中,我們對(duì)tensorrt的安裝和簡(jiǎn)單使用進(jìn)行了說(shuō)明。但筆者主要是從事NLP方向,希望加速的模型是bert類模型。直接使用convert-to-uff只能對(duì)簡(jiǎn)單的網(wǎng)絡(luò)層進(jìn)行轉(zhuǎn)換,并不能對(duì)transformer進(jìn)行轉(zhuǎn)換。因此在下一篇文章中,筆者將記錄使用TensorRT轉(zhuǎn)換bert類模型的步驟和在其中遇到的坑。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/119997.html
摘要:沒(méi)有顯卡也沒(méi)有關(guān)系,可以看看我前面發(fā)布的兩篇文章谷歌云計(jì)算平臺(tái),免費(fèi)又好用上安裝本文采用的深度學(xué)習(xí)模型是雅虎開源的深度學(xué)習(xí)色情圖片檢測(cè)模型,這里的代表,該項(xiàng)目基于框架。你還可以讀利用人工智能檢測(cè)色情圖片谷歌云計(jì)算平臺(tái),免費(fèi)又好用上安裝隨著互聯(lián)網(wǎng)的快速發(fā)展,越來(lái)越多的圖片和視頻出現(xiàn)在網(wǎng)絡(luò),特別是UCG產(chǎn)品,激發(fā)人們上傳圖片和視頻的熱情,比如微信每天上傳的圖片就高達(dá)10億多張。每個(gè)人都可以上傳,...
閱讀 3958·2021-09-22 10:02
閱讀 3377·2019-08-30 15:52
閱讀 3071·2019-08-30 12:51
閱讀 768·2019-08-30 11:08
閱讀 2071·2019-08-29 15:18
閱讀 3114·2019-08-29 12:13
閱讀 3605·2019-08-29 11:29
閱讀 1881·2019-08-29 11:13