日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > pytorch >内容正文

pytorch

numpy pytorch 接口对应_用树莓派4b构建深度学习应用(四)PyTorch篇

發(fā)布時(shí)間:2025/4/16 pytorch 120 豆豆
生活随笔 收集整理的這篇文章主要介紹了 numpy pytorch 接口对应_用树莓派4b构建深度学习应用(四)PyTorch篇 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

上回我們安裝了OpenCV 4.4,相信對(duì)源碼編譯庫(kù)文件有了一定的了解,這篇我們進(jìn)一步在樹(shù)莓派上編譯并安裝 Pytorch 的最新版本。

PyTorch 1.6 的新特性

PyTorch 1.6 版本增加了許多新的 API、用于性能改進(jìn)和性能分析的工具、以及對(duì)基于分布式數(shù)據(jù)并行(Distributed Data Parallel, DDP)和基于遠(yuǎn)程過(guò)程調(diào)用(Remote Procedure Call, RPC)的分布式訓(xùn)練的重大更新。部分更新亮點(diǎn)包括:

  • 原生支持自動(dòng)混合精度訓(xùn)練(AMP, automatic mixed-precision training),只需增加幾行新代碼就可以提高大型模型訓(xùn)練50-60% 的速度。
  • 為 tensor-aware 增加對(duì) TensorPipe 的原生支持
  • 在前端 API 增加了對(duì) complex tensor 的支持
  • 新的分析工具提供了張量級(jí)的內(nèi)存消耗信息
  • 針對(duì)分布式數(shù)據(jù)并行訓(xùn)練和遠(yuǎn)程過(guò)程調(diào)用的多項(xiàng)改進(jìn)和新功能

增加交換內(nèi)存(可選)

編譯 torch 需要花費(fèi)大量的內(nèi)存,在低于 2g 或以下內(nèi)存的樹(shù)莓派上,可以通過(guò)增加虛擬內(nèi)存來(lái)防止OOM,4g 或 8g 的版本的樹(shù)莓派可跳過(guò)這步。

1. 修改配置文件

sudo nano /etc/dphys-swapfil

設(shè)置 4g 的交換內(nèi)存,文件內(nèi)容如下:

# /etc/dphys-swapfile - user settings for dphys-swapfile package # author Neil Franklin, last modification 2010.05.05 # copyright ETH Zuerich Physics Departement # use under either modified/non-advertising BSD or GPL license# this file is sourced with . so full normal sh syntax applies# the default settings are added as commented out CONF_*=* lines # where we want the swapfile to be, this is the default #CONF_SWAPFILE=/var/swap# set size to absolute value, leaving empty (default) then uses computed value # you most likely don't want this, unless you have an special disk situation CONF_SWAPSIZE=4096

保存退出,重啟服務(wù)生效。

sudo service dphys-swapfile restart

查看一下 swap 是否已調(diào)整。

swapon -s

PyTorch 安裝環(huán)境依賴

1. 安裝依賴

首先安裝一些編譯需要的依賴庫(kù):

sudo apt-get install libopenblas-dev cython3 libatlas-base-dev m4 libblas-dev cmake sudo apt-get install python3-dev python3-yaml python3-setuptools python3-wheel python3-pillow python3-numpy

2. 切換虛擬環(huán)境

deactivate # 退出之前 OpenCV 的虛擬環(huán)境 # 創(chuàng)建新的虛擬環(huán)境 virtualenv -p python3 ~/my_envs/pytorch source ~/my_envs/pytorch/bin/activate

編譯安裝 PyTorch

1. 設(shè)置配置項(xiàng)

export NO_CUDA=1 export NO_DISTRIBUTED=1 export NO_MKLDNN=1 export NO_NNPACK=1 export NO_QNNPACK=1

2. 安裝庫(kù)文件

pip3 install numpy pyyaml

Tip: 務(wù)必確認(rèn)一下虛擬環(huán)境下,已經(jīng)安裝了numpy。沒(méi)有numpy的話也能成功編譯,但是編譯出來(lái)的PyTorch 不支持numpy。PyTorch was compiled without NumPy support。

3. 下載源碼及支持庫(kù)

git clone https://github.com/pytorch/pytorch.git cd pytorch # 查詢所要編譯的版本 git branch -a git tag git checkout v1.6.0 git submodule update --init --recursive git submodule update --remote third_party/protobuf

4. 生成whl安裝包

python3 setup.py bdist_wheel

接下來(lái)就是歷時(shí) 5 個(gè)多小時(shí)漫長(zhǎng)的編譯過(guò)程了,如果說(shuō)之前編譯 OpenCV 只是去喝杯咖啡就能回來(lái)繼續(xù),那編譯 PyTorch 的時(shí)間都?jí)蛉ズ煤盟弦挥X(jué)了

順便安裝一個(gè)CPU 溫度和使用率工具s-tui,來(lái)監(jiān)測(cè)一下系統(tǒng)狀態(tài)。

sudo pip install s-tui --ignore-installed sudo s-tui

持續(xù)滿負(fù)荷狀態(tài):

5. 安裝 PyTorch

cd dist pip3 install ./torch-1.6.0a0+b31f58d-cp37-cp37m-linux_armv7l.whl

看到如下信息,就代表安裝成功了。

編譯安裝 Torchvision

1. 下載源碼

git clone https://github.com/pytorch/vision.git

2. 選擇對(duì)應(yīng)版本

pytorch 1.6 對(duì)應(yīng)的 torchvision 是 0.7 的版本,checkout 出來(lái),并安裝 PIL 支持。

pip3 install pillow cd vision git checkout v0.7.0-rc4 git submodule update --init --recursive python3 setup.py bdist_wheel

Tip: 編譯如遇到以上錯(cuò)誤信息,是由于源碼中有兩處變量類型錯(cuò)誤,需要用 size_t 強(qiáng)制類型轉(zhuǎn)換一下。修改對(duì)應(yīng)的 seekable_buffer.cpp 和 util.cpp 文件即可。

3. 安裝 TorchVision

cd dist pip3 install ./torchvision-0.7.0a0+78ed10c-cp37-cp37m-linux_armv7l.whl

搞定!

運(yùn)行 yolo v5

1. 克隆 yolov5 源碼

git clone https://github.com/ultralytics/yolov5

2. 軟鏈接到 OpenCV

cd ~/my_envs/pytorch/lib/python3.7/site-packages ln -s /usr/local/lib/python3.7/site-packages/cv2 cv2Tip: 若要?jiǎng)h除軟鏈接,用 rm -rf ./cv2 即可,要注意的是千萬(wàn)別在最后添加 /。

3. 安裝依賴庫(kù)

pip install tqdm pip install matplotlib pip install scipy

4. 圖像推理

測(cè)試用最小的模型 yolov5s 對(duì)兩張圖片進(jìn)行目標(biāo)檢測(cè),識(shí)別率還不錯(cuò),但速度一般,一張 3.8 秒,一張 2.8 秒,大約 0.3fps,后續(xù)我們可以對(duì)比一下openvino 加速的效果。

cd yolov5 python3 detect.py --source ./inference/images/ --weights weights/yolov5s.pt --conf 0.5

到這里,樹(shù)莓派里的 pytorch1.6 已經(jīng)可以正常工作了。

資料下載

若想跳過(guò)冗長(zhǎng)的編譯過(guò)程,可以直接下載whl,然后用 pip install 進(jìn)行安裝即可。基于 python 3.7 的版本,除了 pytorch 1.6 + torchvision 0.7,我還編譯了最新的 pytorch 1.7 + torchvision 0.8(安裝時(shí)要注意版本匹配)。

下一篇預(yù)告

我們將開(kāi)始安裝 Tensorflow 的開(kāi)發(fā)環(huán)境, 并運(yùn)行一下 tensorflow lite, 看一下裸板樹(shù)莓派推理的極限速度, 敬請(qǐng)期待...

歡迎掃碼關(guān)注,更多分享

總結(jié)

以上是生活随笔為你收集整理的numpy pytorch 接口对应_用树莓派4b构建深度学习应用(四)PyTorch篇的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。