机器学习深度学习——非NVIDIA显卡怎么做深度学习(坑点排查)

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er
🌌上期文章:机器学习&&深度学习——数值稳定性和模型化参数(详细数学推导)
📚订阅专栏:机器学习&&深度学习
希望文章对你们有所帮助

这一部分掉坑真的不知道掉了多少个。我是AMD卡的,我想AMD卡的同志们很多都掉过坑了,也许就在我掉过众多坑里面。网上很多说法是AMD卡做深度学习可以使用RCom,然而我发现几乎没有太多资料,毕竟做深度学习的大多数用的是N卡。emmmm,万一掉坑了都没有人能启发到我,所以当时我就放弃了,接下来给出坑点并且排查,最终给出绝对可行的解决方案。

AMD显卡怎么做深度学习

  • 卸载CPU版本的torch
    • 卸载方式
    • 问题
  • 安装GPU版本的torch
    • 安装方式
    • 问题
  • Anaconda配置虚拟环境
  • 下载cuda
    • 问题
  • 最终解决方案

之前的内容中,我都是使用了CPU版本的torch来进行深度学习,在前面的线性模型当然很好跑,因为线性模式确实是比较简单的。但是随着之后的模型越发的复杂,我们很需要GPU来帮助我们实现并行运算,因此我们需要安装GPU版本的torch。

卸载CPU版本的torch

因为听说有了GPU版本的torch,在一些使用的过程中可能会出现冲突,所以我第一下想到的就是卸载CPU版本的torch。卸载的时候还需要把这个torch中所包含的包也一并卸载了。

卸载方式

使用cmd终端卸载,卸载的方式有两种:
1、pip方式卸载:

pip uninstall torch
pip uninstall torchvision

2、conda方式卸载:

conda uninstall pytorch
conda uninstall libtorch

据说是使用了conda方式下载的话就用第二种,pip方式下载的话就用第一种,感觉好像又不是很有道理,总之两个都试过了,也都告诉我卸载成功了。

问题

但是接下来就出现了很奇怪的一幕。我在cmd终端输入如下语句:

pythonimport torchtorch.__version__

最终告诉我的答案里面是不存在torch,那理论上应该是成功了才对。。。然而我去pycharm中执行:

import torchprint(torch.__version__)

额。。。居然给我输出了CPU版本的torch,我还猜测是不是亲爱的pycharm没缓过来。。。无论重启还是关机都显示含有CPU版本的torch。。。原地捣鼓半天,网上好像也没个针对这个具体问题的解决方案,最终放弃卸载。

安装GPU版本的torch

安装方式

进入pytorch官网:
pytorch官网
在这里插入图片描述
用上面的conda或者pip语句都是可以的,在终端中运行就好,连cuda版本都给咱们指定好了。

问题

我以为pycharm是出了什么毛病,明明终端显示没有CPU版本的torch了,偏偏pycharm输出了。。。我就以为换个GPU版本的torch应该就没事了,这其实也是瞎捣鼓,最终在pycharm中输出CPU版本的torch,在终端输出GPU版本的torch。
因此在pycharm中跑GPU方式的代码是行不通的。。。

Anaconda配置虚拟环境

既然卸载的方式行不通,我就找别的方法,之前已经安装过了Anaconda,我们靠着这个工具来实现环境的配置。步骤如下:
1、我们可以自行创建虚拟环境:

conda create --name pytorch python=3.9

我们可以通过

conda env list

来查看当前的环境,其中base是本来的环境,pytorch是我们创建的虚拟环境。
在这里插入图片描述
2、我们需要激活这个环境,那么接下来下载的东西(包括各种的包、包括GPU版本的torch)都可以下载到这个虚拟环境去,也就是说这个虚拟环境本来就是干净的,不像base环境那样装过CPU版本的torch。
激活的语句为:

avtivate pytorch

再打开当前的环境列表,可以看出pytorch已经被激活:
在这里插入图片描述
3、下载GPU版本的torch
将上面的语句进行下载,接下来就可以把torch下载到自己新建的虚拟环境pytorch中去了。
4、在pycharm中配置它。
打开File-Settings-Project:Python-Python Interpreter:
在这里插入图片描述
点开Add Local Interpreter,即可选择之前的路径成功切换。
但是此时我还是不能运行相关语句,搜相关资料以后知道是没有cuda,运行语句:

print(torch.cuda.is_available())

最后会返回False,因此我们需要下载cuda。

下载cuda

这个步骤就不细说了,这个下载过程是傻瓜式教程,网上有。

问题

这个问题就比较严重了。。。安装都安装不成,安装了我才知道只有NVIDIA卡是可以下载cuda的,那我的方向再一次断了,而且我很难在原有基础上转变思路。

最终解决方案

接下来就是我最终的解决方案了,租借线上平台。
我是用的autodl平台去租借的,大家可以放心使用(我觉得官网有点话都写的不太清楚,我一直不知道到底只是租一个GPU而已还是啥,因为如果只是租一个GPU我没有cuda照样不行,最终还是搞了点钱去试了一下),点开以后里面有使用文档,使用方法很容易,大家可以放心使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/29223.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

conda install 和pip install有什么区别?

本篇为分享贴,截图部分选自知乎,部分选自csdn,文字内容是结合自己实践进行总结。 环境引用的包在哪? 首先,一条命令: python -m site 这条命令可以定位引用的包在哪里 ,当然也可以自己设置默认…

JavaWeb(9)——前端综合案例3(悬停显示下拉列表)

一、实例需求 ⌛ 实现类似百度首页的“一个简单的鼠标悬停显示的下拉列表效果”。 二、代码实现 ☕ <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><style>.dropdown-cont…

iframe 标签的作用是什么?用法是什么?属性有什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ iframe 标签是什么&#xff1f;⭐ iframe 标签的作用什么&#xff1f;⭐ iframe 标签的用法⭐ iframe 标签的属性⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你…

【单片机】51单片机,TLC2543,驱动程序,读取adc

TLC2543 是一款 12 位精密模数转换器 (ADC)。 1~9、11、12——AIN0&#xff5e;AIN10为模拟输入端&#xff1b; 15——CS 为片选端&#xff1b; 17——DIN 为串行数据输入端&#xff1b;&#xff08;控制字输入端&#xff0c;用于选择转换及输出数据格式&#xff09; 16——…

【redis】docker搭建redis集群

docker搭建redis集群&#xff0c;超级简单方便。 # 1. 拉取redis. 目前我拉取最新的是7.0.12 docker pull redis # 2. 下载配置文件 wget https://raw.githubusercontent.com/redis/redis/7.0/redis.conf # 3. 移到对应目录 mkdir -p /opt/docker/redis mv redis.conf /opt/d…

机器学习复习题

1 单选题 ID3算法、C4.5算法、CART算法都是&#xff08; &#xff09;研究方向的算法。 A . 决策树 B. 随机森林 C. 人工神经网络 D. 贝叶斯学习 参考答案&#xff1a;A &#xff08; &#xff09;作为机器学习重要算法之一&#xff0c;是一种利用多个树分类器进行分类和预测…

Typescript]基础篇之 tsc 命令解析

[Typescript]基础[TOC]([Typescript]基础篇之 tsc 命令解析 tsc 命令概览编译参数说明--declaration--watch 这里是对 tsc 的一个详细介绍 tsc 命令概览 安装 Typescript 后可以使用 tsc 编译 ts 文件,tsc 命令是否支持其它参数 如果需要查看 tsc 支持的命令&#xff0c;或者…

Immutable.js 进行js的复制

介绍 在提供不可变&#xff08;Immutable&#xff09;数据结构的支持。不可变数据是指一旦创建后就不能被修改的数据&#xff0c;每次对数据进行更新都会返回一个新的数据对象&#xff0c;而原始数据保持不变。 使用 日常中我们使用的拷贝 (1) var arr { } ; arr2 arr ; …

chatGPT能力培训,客户最关注的99个方向

前言&#xff1a; chatGPT的主要应用&#xff0c;包括文本生成、图像生成和图文关联三大核心方向&#xff1a; 用户的在实际的工作和学习过程中&#xff0c;最关心的内容&#xff0c;可以按照上述类别进行划分&#xff0c;我们总结了&#xff0c;相关的插头GPT能力培训的相关主…

linux 内存 - KO内存占用

说明 KO(kernel module)占用的内存分为两部分&#xff1a; 静态占用 &#xff1a;ko insmod时系统固定分配的内存。动态申请 &#xff1a;代码中动态申请的内存&#xff0c;由于申请方式不同&#xff0c;统计的方式也可能不同&#xff0c;例如&#xff1a;使用vmalloc和kmall…

DAY04_SpringMVC—SpringMVC简介PostMan和ApiFox工具使用SpringMVC请求与响应REST风格

目录 一 SpringMVC简介1 SpringMVC概述问题导入1.1 SpringMVC概述 2 入门案例问题导入2.0 回顾Servlet技术开发web程序流程2.1 使用SpringMVC技术开发web程序流程2.2 代码实现【第一步】创建web工程&#xff08;Maven结构&#xff09;【第二步】设置tomcat服务器&#xff0c;加…

C++的string类

1.string简介 string不是STL的一部分&#xff0c;但是和STL一起学习会更加容易融会贯通。 而实际上string是一个类模板&#xff0c;使用字符的顺序容器实现&#xff08;也就是字符的顺序表&#xff09;&#xff0c;string整个系列支持char的动态增长&#xff08;字符编码有几…

【iOS安全】开启任意app的WebView远程调试

参考&#xff1a;https://mp.weixin.qq.com/s/bNKxQaVrPaXsZ5BPbsXy7w &#xff08;来自周智老师的公众号&#xff09; 概述 Safari 有一个内置的前端调试器&#xff0c; 在iPhone通过局域网或者USB连接MacBook 并启用Safari 远程调试之后&#xff0c;前端调试器默认情况下对…

mysql之limit语句详解

一、介绍 LIMIT是MySQL内置函数&#xff0c;其作用是用于限制查询结果的条数。 二、使用 1. 语法格式 LIMIT [位置偏移量,] 行数 其中&#xff0c;中括号里面的参数是可选参数&#xff0c;位置偏移量是指MySQL查询分析器要从哪一行开始显示&#xff0c;索引值从0开始&#xff…

【剑指Offer 15】二进制中1的个数,Java解密。

LeetCode 剑指Offer 75道练习题 文章目录 剑指Offer:二进制中1的个数示例:限制:解题思路:剑指Offer:二进制中1的个数 【题目描述】 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量))。 提示…

构建Docker容器监控系统 (1)(Cadvisor +InfluxDB+Grafana)

目录 Cadvisor InfluxDBGrafana 1. Cadvisor 2.InfluxDB 3.Grafana 开始部署&#xff1a; 下载组件镜像 创建自定义网络 创建influxdb容器 创建数据库和数据库用户 创建Cadvisor 容器 准备测试镜像 创建granafa容器 访问granfana 添加数据源 Add data source 新建 …

java.sql.SQLFeatureNotSupportedException 问题及可能的解决方法

目录 问题 分析&#xff1a; 解决方法 问题 java.sql.SQLFeatureNotSupportedException 分析&#xff1a; 可能是你的 druid的maven依赖版本太低了&#xff0c;我的以前是1.1.16&#xff0c;就出现了异常&#xff01; 解决方法 把druid的maven依赖版本调高&#xff01; 运…

unity海康威视原生SDK拉取网络摄像头画面,并展示在一个Material上

原理是使用sdk获取视频流&#xff0c;格式为YUV&#xff0c;然后分离YUV通道到三张不同的Texture2D上&#xff0c;通过shader将三个通道重新输出为原始图像。 我将所用的各个部分已经整理成一个压缩包&#xff0c;免积分下载 压缩包结构如下 使用步骤 1 DLL:放在Plugins文件…

湘大oj1138爱你一生一世题解:最大公约数 逆向思维 int整除会向下取整

一、链接 爱你一生一世 二、题目 题目描述 在2013年1月4日&#xff0c;这个“爱你一生一世”的特别日子&#xff0c;男生都想向自己的喜欢的女生表达爱意。 你准备在该死的C语言考试后&#xff0c;去向她&#xff08;或者他&#xff1f;&#xff09;告白。告白怎么能缺了礼…

渗透攻击方法:原型链污染

目录 一、什么是原型链 1、原型对象 2、prototype属性 3、原型链 1、显示原型 2、隐式原型 3、原型链 4、constructor属性 二、原型链污染重现 实例 Nodejs沙箱逃逸 1、什么是沙箱&#xff08;sandbox&#xff09; 2、vm模块 一、什么是原型链 1、原型对象 JavaS…