上一篇我们学会了如何正确的使用了opencv编译以及下载方式和网络问题的解决方法,接下来我们研究一下pytorch,当然opencv下载好之后需要学习的东西远远不仅于此,我们先将下载工作做好
*
PyTorch 安装环境依赖
> 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
virtualenv -p python3 ~/my_envs/pytorch source
~/my_envs/pytorch/bin/activate
编译安装 PyTorch
export NO_CUDA=1 export NO_DISTRIBUTED=1 export NO_MKLDNN=1 export
NO_NNPACK=1 export NO_QNNPACK=1
安装库文件
pip3 install numpy pyyaml
Tip:
务必确认一下虚拟环境下,已经安装了numpy。没有numpy的话也能成功编译,但是编译出来的PyTorch 不支持numpy。PyTorch was compiled without NumPy support。
pip list
安装开始
cd dist
pip3 install ./torch-1.6.0a0+b31f58d-cp37-cp37m-linux_armv7l.whl
whl文件可去官网下载
pytorch 1.6 对应的 torchvision 是 0.7 的版本,checkout 出来,并安装 PIL 支持。
pip3 install ./torchvision-0.7.0a0+78ed10c-cp37-cp37m-linux_armv7l.whl
git clone https://github.com/ultralytics/yolov5
cd ~/my_envs/pytorch/lib/python3.7/site-packages
ln -s /usr/local/lib/python3.7/site-packages/cv2 cv2
Tip:
若要删除软链接,用 rm -rf ./cv2 即可,要注意的是千万别在最后添加 /。
pip install tqdm
pip install matplotlib
pip install scipy
cd yolov5
python3 detect.py --source ./inference/images/ --weights weights/yolov5s.pt --conf 0.5
教大家实时流的方法就是source 0
由于现在官网yolov5版本也一直在改变,所以改变模型之后需要对应提升自己的版本哦
到这里,树莓派里的 pytorch1.6 已经可以正常工作了。
**不得不说,相对于pytorch来说,tensorflow 对各个系统的支持真的很完善,无论是各种平台还是各个版本都有对应的预编译安装包,官方文档也很详细(但不代表没有坑,详见下文),是工程化不错的选择。
而pytorch代码更pythonic,所以最新的模型和算法很多都由pytorch发布,两者长远来说会是个互相学习,互相追赶良性竞争的状态。对开发者来说,就都应该有所了解。
现在 树莓派上 tensorflow 比较成熟的版本是 1.14.0,最新版本是 2.3.0。主流应用还是 1.x 系列的比较多,但 2.x 集成keras化后明显更好用些,特别是在模型转化方面,也面向未来,所以这里用虚拟环境两者都部署一下。
1.14 1.
建立 tensorflow 1.14 的虚拟环境
python3 -m venv --system-site-packages ~/my_envs/tensorflow
source ~/my_envs/tensorflow/bin/activate
wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v1.14.0-buster/tensorflow-1.14.0-cp37-none-linux_armv7l.whl
wget https://github.com/lhelontra/tensorflow-on-arm/releases/download/v2.3.0/tensorflow-2.3.0-cp37-none-linux_armv7l.whl
pip install tensorflow-1.14.0-cp37-none-linux_armv7l.whl
python
import tensorflow as tf
print(tf.reduce_sum(tf.random.normal([1000, 1000])))
tf.version
当然本篇文章参考了一下大佬的作品,在解决了下载网络问题之后这些工作还是比较简单易懂的。参考:https://blog.csdn.net/weixin_47479625/article/details/108970755
此大佬人还是比较好,希望有能力的大佬还得多参考他的作品,如果这部分有什么刚入手不懂的小白可以咨询我2574286166qq