最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Pyinstaller打包Pytorch框架所遇到的問題

 更新時(shí)間:2022年03月25日 09:35:44   作者:Continue_i  
Pytorch在python界用得比較多,打包容易失敗,本文主要介紹了Pyinstaller打包Pytorch框架所遇到的問題,文中介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前言

第一次嘗試用Pyinstaller打包Pytorch,碰見了很多問題,耗費(fèi)了許多時(shí)間!想把這個(gè)過程中碰到的問題與解決方法記錄一下,方便后來者。

基本流程

使用Pyinstaller打包流程可分為以下三步:

  • 安裝Pyinstaller,寫個(gè)Hello world打包測(cè)試
  • 打包整個(gè)項(xiàng)目,在本機(jī)上調(diào)試生成exe
  • 將exe拷貝到新電腦上,測(cè)試和調(diào)試

一、安裝Pyinstaller 和 測(cè)試Hello World

使用Pycharm打開項(xiàng)目,點(diǎn)擊Terminal,輸入以下命令:

pip install pyinstaller

請(qǐng)確保Terminal所在路徑為項(xiàng)目根目錄,以免在后續(xù)打包過程中找不到一些模塊。圖中紅框內(nèi)(pytorch)是我的項(xiàng)目所需要的虛擬環(huán)境。

編寫Hello World測(cè)試,新建test.py:

if __name__ == '__main__':
  print("Hello World!")
  while True:
    pass

在Terminal輸入以下命令,打包test.py:

pyinstaller -F test.py

回車運(yùn)行,開始打包!在文件夾dist中找到test.exe程序,運(yùn)行測(cè)試,沒報(bào)錯(cuò)說明Pyinstaller安裝成功。

二、打包整個(gè)項(xiàng)目,在本機(jī)上調(diào)試生成exe

實(shí)際的項(xiàng)目一般是多文件,打包過程遠(yuǎn)比Hello World復(fù)雜多了。打包項(xiàng)目的核心要點(diǎn)有兩個(gè):

  • 配置好.spec文件
  • 補(bǔ)齊依賴項(xiàng)

關(guān)于.spec文件配置詳見參考鏈接一,這里不再贅述。需要注意的是,在測(cè)試階段,打包時(shí)應(yīng)設(shè)置為-D模式,方便補(bǔ)齊dll。本文重點(diǎn)講dll及其依賴項(xiàng)的補(bǔ)齊。先安裝必備工具Dependens,通過這個(gè)工具,我們可以得到.dll文件所需要的依賴項(xiàng)。在運(yùn)行打包后的exe常常遇到以下的問題:

這提示我們系統(tǒng)缺少caffe2_nvrtc.dll或其對(duì)應(yīng)的依賴項(xiàng)。

  • 先到對(duì)應(yīng)路徑查看caffe2_nvrtc.dll是否存在
  • 若不存在,直接在Anaconda配置環(huán)境的文件夾搜索,一般都可以找到。將找到的caffe2_nvrtc.dll復(fù)制粘貼到根目錄
  • 若存在,說明是缺少caffe2_nvrtc.dll的依賴項(xiàng),使用Dependencies工具查看所需要的依賴項(xiàng),后補(bǔ)齊到根目錄

Dependencies的使用非常簡(jiǎn)單,直接將.dll拖進(jìn)去即可。這里以torch_python.dll舉例

可以發(fā)現(xiàn),缺少若干個(gè)dll文件,補(bǔ)齊便可。通過上述方法,依樣畫葫蘆,基本可以解決關(guān)于dll報(bào)錯(cuò)的問題。
  但每次重新打包后,需要手動(dòng)復(fù)制粘貼dll文件,很是麻煩,通過配置.spec文件可簡(jiǎn)化操作。以記事本方式打開.spec,找到datas:

小括號(hào)內(nèi)有兩個(gè)路徑,第一個(gè)路徑'kernel32.dll'表示原始數(shù)據(jù)路徑,存放kernel32.dll的路徑;第二路徑為'.'表示目標(biāo)路徑,打包后原始數(shù)據(jù)存放的路徑。意思就是將第一路徑的東西在打包后,放在第二路徑上。需要注意的是,這邊我設(shè)置的是相對(duì)路徑,相對(duì)于.spec中的pathex

三、在新電腦上測(cè)試

我使用的是pytorch的GPU版本,在新電腦上運(yùn)行發(fā)現(xiàn)會(huì)報(bào)如下錯(cuò)誤,應(yīng)該是缺少cuda庫的緣故。

我的解決辦法簡(jiǎn)單粗暴,直接拷貝cuda包到移動(dòng)硬盤

每次到新的電腦,添加cuda到環(huán)境變量

建議在程序額外設(shè)置一個(gè)選項(xiàng),可將網(wǎng)絡(luò)切換成CPU推理,以便在其他電腦測(cè)試時(shí),即使環(huán)境未配置成功,也可通過CPU推理驗(yàn)證打包成功與否。最后,祝大家好運(yùn),打包成功那一刻是蠻喜悅的!

參考資料

到此這篇關(guān)于Pyinstaller打包Pytorch框架所遇到的問題的文章就介紹到這了,更多相關(guān)Pyinstaller打包Pytorch 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

乐至县| 台前县| 新宁县| 华宁县| 邵阳市| 蒙阴县| 乌拉特中旗| 滕州市| 高青县| 申扎县| 鱼台县| 南丹县| 潼南县| 抚远县| 耒阳市| 从化市| 迭部县| 平遥县| 庆云县| 田林县| 宣武区| 花垣县| 崇仁县| 河间市| 江永县| 琼海市| 丰镇市| 寿宁县| 永新县| 天台县| 衡水市| 正宁县| 藁城市| 钦州市| 临沧市| 镶黄旗| 改则县| 南溪县| 托克托县| 南丹县| 阿拉善右旗|