Pytorch及Yolov5环境配置及踩坑

Pytorch及Yolov5环境配置及踩坑

yolo是计算机视觉方面用来进行目标检测的一个十分出名的开源框架,我搜不到官方的对此概括性的定义,但实际上也没什么必要,更重要的是会使用,更更重要的是理解其底层的实现逻辑

对于我现在的数学水平,想了解底层实现逻辑的10%,都有些天方夜谭了,之后我可能会开一个文章专门跟进我学习的进度,也可能会在这篇文章的下面更新学习流程

其实也可以在C++下进行Yolo的配置,但是我不想费事了,直接就在Python下搞了,而且我也推荐人们在Python下使用Yolo,虽然效率确实没有C++高,但实际上都是调用API,也没有什么差别

想要配置yolo这个大家伙,需要分为几个步骤

首先说一下安装这三个东西的原因,如果我们要进行物品识别,那就肯定要对视频进行一个分析,我们有两条路可以选,一条是不用你的GPU进行加速,另一条是用你的GPU进行加速,有什么区别呢?如果你不用GPU加速,那么你的CPU就会很难受,因为完全在用CPU跑训练,但是CPU根本就不是用来图形渲染的,你这不是难为人家吗?况且Pytorch辛辛苦苦写了这么多GPU加速,你视而不见,有点可惜了不是吗?

所以我们必须要搞一手GPU加速,为了我们好,也为了电脑多活几天

登录英伟达官网,选择相应的显卡型号,安装显卡驱动即可,验证安装是否成功的方式是在cmd中输入 nvidia smi

CUDA的安装也是一样的,在英伟达官方根据你的显卡型号选择对应的CUDA版本即可,一般不是安培架构的GPU的话,推荐还是选择10.2这个版本,图灵架构在这个版本下会有更优越的表现

至于CUDNN,这个东西有点麻烦,你需要注册一个英伟达的账号才可以在官网下载

Anaconda的安装也没有问题,在官网搜索下载,注意在安装程序时加入系统变量即可了

Pytorch的安装也没问题,搜索官网,唯一需要注意的是选择与你的CUDA版本所相对应的Pytorch版本安装即可,至于在哪里安装。

首先打开Anaconda prompt,输入 anaconda create --name <env_name></env_name>,这里的env_name是你要创建的环境的名字

之后输入 anaconda activate <env_name></env_name>进入你所要安装至的环境中,在Pytorch官网找到与你的CUDA版本所相对应的Pytorch安装指令,输入即可

用过Linux的应该都知道的,由于网络原因,下载之前要先进行一个换源的操作,推荐换清华源来进行安装,这个百度即可

终于到了最后一步,我们需要安装百度的一个深度学习平台Paddle

同Pytorch的安装方法一样,进行你的Pytorch环境,在Paddle官网选择与你的CUDA版本相对应的Paddle版本安装指令进行安装即可,这里使用的是百度源,下载速度还是可以的

看似安装过程没什么问题,那么到底是哪里可能出问题呢?

我的问题出在环境安装结束后,缺少了很多其他第三方库的安装,例如torch进度条可视化,Scipy库等等,解决方法很简单,我们在anaconda下进入对应的pytorch环境,利用pip安装即可,注意换源的问题

之后又遇到了CUDA版本或是Torchvision与Torch不对应的问题,这个问题要到Pytorch在github上的开源仓库中进行解决,不幸的是我们只能先卸载我们辛苦安装的torch,之后找到与CUDA版本对应的pytorch进行安装即可

最后遇到的问题是模型训练时无法调用CUDA进行GPU加速,但实际上我是已经安装了CUDA的,这个问题的出现是因为没有安装CUDNN,去官网下载CUDNN添加至系统变量后重启电脑即可

这么大一个东西配置下来总而言之就是玄学,多踩坑也是学习了……

Original: https://www.cnblogs.com/appletree24/p/16484136.html
Author: Appletree24
Title: Pytorch及Yolov5环境配置及踩坑

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/584836/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 多元线性回归 C++实现

    https://www.pudn.com/detail/6011226 Original: https://www.cnblogs.com/lostO/p/16699839.htm…

    Java 2023年6月16日
    066
  • JAVA WEB 中的编码分析

    ServletPath和PathInfo中的中文 QueryString中的中文 public void service(org.apache.coyote.Request req…

    Java 2023年6月7日
    077
  • 《Java2 实用教程(第五版)》教学进程

    《Java2 实用教程(第五版)》教学进程 目录 《Java2 实用教程(第五版)》教学进程 预备作业1:你期望的师生关系是什么? 预备作业2 :学习基础和C语言基础调查 预备作业…

    Java 2023年5月29日
    098
  • 技能篇:git的简易教程

    在学校,或许凭借一个人的力量就能负责整个项目的开发到上线。但是在公司,因为项目的复杂性和紧急性,一个项目的往往是由多个人实现,此时就有一个问题,代码提交和代码合并。git和svn,…

    Java 2023年6月5日
    085
  • 缓存雪崩问题,缓存穿透问题及解决思路

    1.缓存雪崩 缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到达数据库,带来巨大压力。 解决方案: 给不同的Key的TTL添加随机值 利用Red…

    Java 2023年6月9日
    068
  • [springmvc]ajax异步请求数据详细简单

    10.Ajax异步请求 Ajax即 Asynchronous Javascript And XML(异步JavaScript和XML在 2005年被Jesse James Garr…

    Java 2023年6月6日
    078
  • Spring 源码(10)Spring Bean 的创建过程(1)

    Spring Bean的创建刚开始进行了一些准备工作,比如转换服务的初始化,占位符解析器的初始化, BeanDefinition元数据的冻结等操作,都是为了在创建Bean的过程中保…

    Java 2023年6月14日
    071
  • Http相关知识

    Http的无状态性 无状态是指,当浏览器发送请求给服务器的时候,服务器响应客户端的请求。但是当同一个浏览器再次发送请求给服务器的时候,服务器并不知道它就是刚才的浏览器。简单的说就是…

    Java 2023年6月13日
    087
  • SpringCloud — Feign & Hystrix 介绍

    这两个组件的作用是解决多个微服务之间的调用,一个是解决如何调用,一个解决调用时出现了错误怎么解决 在之前多个服务进行调用可以直接使用http请求或者rest 请求去请求每一个微服务…

    Java 2023年6月8日
    075
  • JDK成长记7:3张图搞懂HashMap底层原理!

    HashMap基本原理和优缺点 HashMap基本原理和优缺点 一句话讲, HashMap底层数据结构,JDK1.7数组+单向链表、JDK1.8数组+单向链表+红黑树。 HashM…

    Java 2023年6月5日
    091
  • String 部分方法使用

    package com.Mxhlin.String; import java.util.Locale; /** * @author Mxhlin * @Email fuhua277…

    Java 2023年6月7日
    075
  • Java基础常见知识&面试题总结(下)

    Java基础常见知识&面试题总结(下) 1.面向对象基础 1.1面向对象和面向过程的区别 两者的主要区别在于解决问题的方式不同: 面向过程把解决问题的过程拆成一个个方法,通…

    Java 2023年6月9日
    067
  • OS面试题(转载)

    转载自:http://placement.freshersworld.com/power-preparation/technical-interview-preparation/o…

    Java 2023年5月30日
    072
  • 认识JavaWeb

    JavaWeb Java Web 1、基本概念 1.1、前言 web开发: web,网页的意思 , www.baidu.com 静态web html,css 提供给所有人看的数据始…

    Java 2023年6月8日
    075
  • 策略模式在业务中的实际应用

    策略模式结构图 策略模式主要由以上三个身份组成,这里我们就不过多介绍策略模式的基础知识,默认大家已经对策略模式已经有了一个基础的认识。 业务需求 现有一个广告点击数据埋点上报的需求…

    Java 2023年6月5日
    078
  • hashMap、ConcurrentHashMap、hashTable、TreeMap、LinkedHashMap用法区别详解

    hashMap 底层结构是:数组+链表+红黑树(jdk1.8之前就是存储的数组+链表) 说明: &#x6570;&#x7EC4;&#x7684;&#…

    Java 2023年6月5日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球