Py学习  »  机器学习算法

深度学习入门之pytorch环境安装

点云PCL • 1 年前 • 274 次点击  


公众号致力于分享点云处理,SLAM,三维视觉,高精地图相关的文章与技术,欢迎各位加入我们,一起交流一起进步,有兴趣的可联系微信:cloudpoint9527。本文来自点云PCL博主的分享,未经作者允许请勿转载,欢迎各位同学积极分享和交流。

前言


上周花了半天时间在Windows下安装pytorch库,这里记录了参考博客和踩坑过程,我也不知道我能坚持多久,但我想通过记录的方式让这个过程更有趣,更有意义,期待朋友们的一起分享,理论课程固然重要,但实践出真知,所以还是先配置环境,并运行一些实例激发我们的兴趣吧!

安装过程


Windows下安装pytorch参考:

https://blog.csdn.net/LeMonMannnn/article/details/130976707

过程中遇到了不少问题,这是难免的,花了半天时间终于成功了

首先根据官网先走一篇tutorial:https://pytorch.org/tutorials/beginner/basics/intro.html

学习教程中给出这样的提示:如果您熟悉其他深度学习框架,请首先查看“0. 快速入门”部分,以快速熟悉PyTorch的API。如果您对深度学习框架不熟悉,请直接进入我们逐步指南的第一部分:张量(Tensors)。


这是入门学习所以先熟悉一下张量,张量是一种数学和计算机科学领域的概念,用于表示多维数据。在机器学习和深度学习中,张量是一个非常重要的概念,用于存储和处理多维数据,例如图像、文本、声音等。在数学上,标量是零维数据(单个值),向量是一维数据(有序值列表),矩阵是二维数据(表格形式的值集合),而张量则可以看作是多维数据,可以有任意数量的维度。例如,一个三维张量可以看作是一个立方体状的数据集,其中每个元素由三个坐标索引来唯一确定。在深度学习框架如PyTorch和TensorFlow中,张量是数据的基本单位,用于构建神经网络模型并执行计算。张量不仅可以存储数据,还可以进行各种数学运算,如加法、乘法、卷积等。此外,这些框架为张量提供了在GPU等硬件上进行高效计算的功能,从而加速模型训练和推断过程。实际上,张量和NumPy数组通常可以共享相同的底层内存,消除了复制数据的需要。张量还经过优化,用于自动微分。


这里B站上有课程,可以自行搜索,这里我不再推荐了。


为了防止在听课疲劳,我在在一边听课学习张量,一边按照步骤实现yolo v5,网上关于深度学习的教程是真的太多了,每个人都有自己的看法和理解,这里我仅仅记录我的操作步骤,具体理论等待我学习完张量后再回头学习,可以尝试安装官网教程:

https://docs.ultralytics.com/yolov5/quickstart_tutorial/


我的PC是安装了Anaconda并且安装了pycharm,首先下载yolo V5源码:https://github.com/ultralytics/yolov5.git

然后我们使用pycharm打开yoloV5的源码

进行工程配置,选择File->Setting选择anaconda环境中的python版本,如果使用默认的工程配置将会出现安装错误。

配置完成后我们需要在终端运行 pip install -r requirements.txt 安装必要的依赖项

运行log如下,结果保存在runs\detect\exp3中,找到文件看一看

可视化结果

但我发现在运行的时候只能用CPU而不能使用我那1050的GPU,归根原因就是CUDA、cudnn、torch版本不对应。

使用如下命令检查发现GPU不可以用为False

import torchtorch.cuda.is_available()

又折腾了半天cuda和pytorch的版本问题,重新安装cuda 和pytorch的版本,反正又是折腾了一天的时间。我感觉新手肯定要在环境上折腾几次,因为想要利用cuda,而不是每次都是在CPU上,折腾了很久,终于我是安装成功了

虽然GPU版本可用了但是在运行yolo v5的时候出现下面的错误,说是torchvision版本不对

然后我根据网上的资料说是pytorch的版太高了,继续卸载重新安装,这次因为我在anaconda设置我的环境变量的时候总是安装到C盘,所以根据这篇博客将我的环境设置到D盘,防止后期C盘爆了:

https://blog.csdn.net/weixin_48373309/article/details/127830801

在设置完新的环境变量后我执行了下面的命令:

conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 pytorch-cuda=11.7 -c pytorch -c nvidia

终于算是可以正常使用我PC自带的独立显卡了

同时为了查看我在运行yolo的时候是否会出现上面不能使用GPU的情况,结果一切正常如下图

然后可以针对这个工程改一改参数,改一改配置查看不同的推理结果。同时我也安装了labelImg(标注工具)用于后期标注体验,完成一整套学习流程。

总结



折腾了两个周末 ,新手入门在windows下安装pytorch环境这块可能就会让人奔溃掉,运行环境对版本一致性的要求很高,可以这么说一次性就安装成功的概率是比较低的,不过在windows下使用还是网上的资料还是比较多的。遇到问题解决起来比较好查找。曾经在Ubuntu下也安装过,问题同样也不少,但如果遇到一些安装问题,真的是难以解决。我知道的一个Ubuntu下安装cuda驱动的时候经常会出现,无法进入Ubuntu界面,或者是循环输入密码,跳回输入密码的界面。这是因为驱动冲突的问题导致,搞奔溃ubuntu系统是常有的事,关键看是否愿意花时间坚持下去。以上是我的个人入门笔记,在无人指点,没有引导者的条件下,自行摸索学习,计划就是在以yolo为实例的前提下,将深度学习基础理论一边学习一边搞明白yolo源码。欢迎各位有入门经验的朋友可以分享一下入门步骤,以及学习中的注意事项。


进群交流--》想入门深度学习有感

添加微信“cloudpoint9527”(姓名+公司+研究方向)

资源

自动驾驶及定位相关分享

【点云论文速读】基于激光雷达的里程计及3D点云地图中的定位方法

自动驾驶中基于光流的运动物体检测

基于语义分割的相机外参标定

综述:用于自动驾驶的全景鱼眼相机的理论模型和感知介绍

高速场景下自动驾驶车辆定位方法综述

Patchwork++:基于点云的快速、稳健的地面分割方法

PaGO-LOAM:基于地面优化的激光雷达里程计

多模态路沿检测与滤波方法

多个激光雷达同时校准、定位和建图的框架

动态的城市环境中杆状物的提取建图与长期定位

非重复型扫描激光雷达的运动畸变矫正

快速紧耦合的稀疏直接雷达-惯性-视觉里程计

基于相机和低分辨率激光雷达的三维车辆检测

用于三维点云语义分割的标注工具和城市数据集

ROS2入门之基本介绍

固态激光雷达和相机系统的自动标定

激光雷达+GPS+IMU+轮速计的传感器融合定位方案

基于稀疏语义视觉特征的道路场景的建图与定位

自动驾驶中基于激光雷达的车辆道路和人行道实时检测(代码开源)

用于三维点云语义分割的标注工具和城市数据集

更多文章可查看:点云学习历史文章大汇总

SLAM及AR相关分享

TOF相机原理介绍

TOF飞行时间深度相机介绍

结构化PLP-SLAM:单目、RGB-D和双目相机使用点线面的高效稀疏建图与定位方案

开源又优化的F-LOAM方案:基于优化的SC-F-LOAM

【开源方案共享】ORB-SLAM3开源啦!

【论文速读】AVP-SLAM:自动泊车系统中的语义SLAM

【点云论文速读】StructSLAM:结构化线特征SLAM

SLAM和AR综述

常用的3D深度相机

AR设备单目视觉惯导SLAM算法综述与评价

SLAM综述(4)激光与视觉融合SLAM

Kimera实时重建的语义SLAM系统

SLAM综述(3)-视觉与惯导,视觉与深度学习SLAM

易扩展的SLAM框架-OpenVSLAM

高翔:非结构化道路激光SLAM中的挑战

基于鱼眼相机的SLAM方法介绍


以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除

扫描二维码

                   关注我们

让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入知识星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。

分享及合作方式:微信“cloudpoint9527”(需要按要求备注) 联系邮箱:dianyunpcl@163.com,欢迎企业来联系公众号展开合作。

点一下“在看”你会更好看耶

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/160650
 
274 次点击