【深度学习代码调试1】环境配置篇(上) -- 安装PyTorch(安利方法:移除所有国内源,使用默认源)

【深度学习代码调试1】环境配置篇 -- 安装TensorFlow和PyTorch

  • 写在最前面
  • 1. 创建新的Conda环境
  • 2. 安装PyTorch及相关库(可以直接跳到2.3安装方法)
    • 2.1 检查CUDA版本
    • 2.2 解决安装过程中常见问题
      • 2.2.1 超时问题(这个不是最终解决方案,会存在问题,详见2.2.2,解决方案见2.3)
      • 2.2.2 CUDA版本不兼容
    • 2.3 尝试解决方案2:更新CUDA版本并匹配对应的PyTorch版本
      • 2.3.1 基于Conda安装PyTorch时的注意事项
      • 2.3.2 移除国内的自定义源
      • 2.3.3 验证默认源配置
      • 2.3.4 安装更新后的PyTorch
      • 2.3.5 验证安装结果
  • 3. 结语


请添加图片描述

🌈你好呀!我是 是Yu欸
🌌 2024每日百字篆刻时光,感谢你的陪伴与支持 ~
🚀 欢迎一起踏上探险之旅,挖掘无限可能,共同成长!

写在最前面

版权声明:本文为原创,遵循 CC 4.0 BY-SA 协议。转载请注明出处。

经历了一周的环境配置和代码调试,终于将整个项目跑通。感谢杨学长、栗学长、聂学长以及申申的指导和帮助。

为了帮助自己和其他需要配置环境的朋友,特此总结记录一些常见的问题与解决方案。

请添加图片描述

在深度学习项目中,环境配置是关键的一步,尤其是需要同时安装TensorFlow和PyTorch等框架时,可能会遇到各种问题。

本文将详细记录本次安装过程中遇到的问题及解决方案,以供大家参考。

关键词:Conda环境,TensorFlow安装,PyTorch安装,CUDA版本不兼容,protobuf冲突

1. 创建新的Conda环境

首先,我们使用Conda来创建一个新的虚拟环境并激活它:

conda create -n vpt_env python=3.7
conda activate vpt_env

2. 安装PyTorch及相关库(可以直接跳到2.3安装方法)

在这个新环境中,我们需要安装指定版本的PyTorch、Torchvision、Torchaudio和CUDA工具包。

(安利方法:移除所有国内源,使用默认源)感谢:https://blog.csdn.net/qq_41889538/article/details/136237706

2.1 检查CUDA版本

官网:https://pytorch.org/get-started/previous-versions/

在安装PyTorch前,先检查系统的CUDA版本:

nvcc --version

在这里插入图片描述

根据系统的CUDA版本,选择合适的PyTorch版本。在我的项目中,我使用了CUDA 10.1,并通过以下命令安装对应版本的PyTorch:

pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

2.2 解决安装过程中常见问题

2.2.1 超时问题(这个不是最终解决方案,会存在问题,详见2.2.2,解决方案见2.3)

在这里插入图片描述

由于网络问题,安装时可能会遇到超时错误。这时,可以考虑使用国内镜像源,比如清华源来加速下载:

pip install torch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

该方式下载,PyTorch 的某些版本不再以 +cuXXX 形式发布或托管。

Could not fetch URL https://download.pytorch.org/whl/torch_stable.html: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='download.pytorch.org', port=443): Max retries exceeded with url: /whl/torch_stable.html (Caused by SSLError(CertificateError("hostname 'download.pytorch.org' doesn't match either of '*.onedns.net', 'onedns.net'"))) - skipping ERROR: Could not find a version that satisfies the requirement torch==1.7.1+cu101 (from versions: 1.0.0, 1.0.1, 1.1.0, 1.2.0, 1.3.0, 1.3.1, 1.4.0, 1.5.0, 1.5.1, 1.6.0, 1.7.0, 1.7.1, 1.8.0, 1.8.1, 1.9.0, 1.9.1, 1.10.0, 1.10.1, 1.10.2, 1.11.0, 1.12.0, 1.12.1, 1.13.0, 1.13.1) ERROR: No matching distribution found for torch==1.7.1+cu101 

2.2.2 CUDA版本不兼容

安装完成后,运行测试代码时可能会遇到以下错误:

RuntimeError: CUDA error: no kernel image is available for execution on the device

此错误通常是由于CUDA版本与显卡不兼容引起的。在我的项目中,我使用的是NVIDIA GeForce RTX 3090,该显卡的CUDA算力要求PyTorch安装的CUDA版本必须支持sm_86。然而,当前安装的PyTorch并不支持3090的CUDA能力,错误信息如下:

NVIDIA GeForce RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation.

解决方案:更新CUDA版本,再匹配对应的PyTorch版本即可。对于RTX 3090,可以安装CUDA 11版本的PyTorch。

2.3 尝试解决方案2:更新CUDA版本并匹配对应的PyTorch版本

在发现当前安装的CUDA版本与显卡不兼容后,我们需要更新CUDA版本,并安装与之匹配的PyTorch版本。

2.3.1 基于Conda安装PyTorch时的注意事项

在使用Conda安装PyTorch时,建议优先使用默认的Conda源,因为它通常是最稳定、最可靠的。如果遇到安装失败的问题,可以考虑切换其他官方认可的源。

以下是具体的操作步骤:

2.3.2 移除国内的自定义源

如果之前添加了非官方源(如清华大学镜像源),可能会导致安装冲突或失败。为了解决这个问题,我们首先需要移除所有自定义的频道设置:

conda config --remove-key channels

这将从Conda配置中移除所有自定义的频道设置,使Conda恢复为默认配置。

2.3.3 验证默认源配置

运行以下命令检查Conda的频道配置,确保默认源已被正确添加:

conda config --show channels

此命令会列出当前使用的镜像源,确保默认源(如defaults)已被正确设置。

2.3.4 安装更新后的PyTorch

进入Conda虚拟环境后,使用默认源重新安装PyTorch。此过程可能需要一定时间,但稳定性较高:

conda install pytorch torchvision torchaudio cudatoolkit=11.x -c pytorch

这里的cudatoolkit=11.x根据你的显卡CUDA版本选择合适的CUDA工具包版本。

2.3.5 验证安装结果

安装完成后,可以通过以下命令进入Python解释器,并检查PyTorch是否安装成功:

import torch
print(torch.__version__)  # 检查PyTorch版本
print(torch.cuda.is_available())  # 检查CUDA是否可用
print(torch.cuda.device_count())  # 查看GPU数量

确保返回的CUDA状态为True,并能正确显示GPU数量,表明PyTorch已经成功安装并可以利用GPU加速。


通过这一系列步骤,我们成功更新了CUDA版本,并重新安装了与显卡兼容的PyTorch版本。

3. 结语

安装深度学习框架时,常常会遇到版本不兼容、依赖库冲突等问题。通过合理选择安装源、升级相关库,通常可以解决大部分问题。

希望本文的记录能帮助大家顺利完成环境配置,并避免常见的坑。


hello,我是 是Yu欸 。如果你喜欢我的文章,欢迎三连给我鼓励和支持:👍点赞 📁 关注 💬评论,我会给大家带来更多有用有趣的文章。
原文链接 👉 ,⚡️更新更及时。

欢迎大家添加好友交流。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【argparse】 菜鸟实用教程指南

文章目录 0. 引言1. argparse简介2. argparse的使用3. 实例操作4. 代码运行4.1 命令行执行4.1 IDE执行 5. 总结 0. 引言 在深度学习的过程中,我们常常需要操作和调参大量的参数。如果采用硬编码(直接在代码中赋值)的方式来设置这些参数&…

java项目之科研工作量管理系统的设计与实现源码(springboot+vue+mysql)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的科研工作量管理系统的设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 科研工作…

【C语言】算术运算、关系运算、逻辑运算

算术运算&#xff1a;常见的数字运算&#xff0c;加减乘除等 关系运算&#xff1a;数值之间大小多少的关系 逻辑运算&#xff1a;逻辑与、或、非 #include <stdio.h> /* 功能&#xff1a;算术运算、关系运算、逻辑运算 时间&#xff1a;2024年10月 地点&#xff1a;贤者…

斯坦福 CS229 I 机器学习 I 构建大型语言模型 (LLMs)

1. Pretraining -> GPT3 1.1. Task & loss 1.1.1. 训练 LLMs 时的关键点 对于 LLMs 的训练来说&#xff0c;Architecture&#xff08;架构&#xff09;、Training algorithm/loss&#xff08;训练算法/损失函数&#xff09;、Data&#xff08;数据&#xff09;、Evalu…

Linux INPUT 子系统实验

按键、鼠标、键盘、触摸屏等都属于输入(input)设备&#xff0c;Linux 内核为此专门做了一个叫做 input子系统的框架来处理输入事件。输入设备本质上还是字符设备&#xff0c;只是在此基础上套上了 input 框架&#xff0c;用户只需要负责上报输入事件&#xff0c;比如按键值、坐…

Qt-系统文件相关介绍使用(61)

目录 描述 输⼊输出设备类 打开/读/写/关闭 使用 先初始化&#xff0c;创建出大致的样貌 输入框设置 绑定槽函数 保存文件 打开文件 提取文件属性 描述 在C/C Linux 中我们都接触过关于文件的操作&#xff0c;当然 Qt 也会有对应的文件操作的 ⽂件操作是应⽤程序必不…

八、Linux之实用指令

1、指定运行级别 1.1 基本介绍 运行级别说明 0 &#xff1a;关机 1 &#xff1a;单用户【找回丢失密码】 2&#xff1a;多用户状态没有网络服务&#xff08;用的非常少&#xff09; 3&#xff1a;多用户状态有网络服务&#xff08;用的最多&#xff09; 4&#xff1a;系统未使…

《Effective C++》 笔记

让自己习惯C&#xff0c;Accustoming Yourself to C 1. 视C为一个语言联邦&#xff0c;View Cas a federation of languages. 将 C视为一个由相关语言组成的联邦而非单一语言。在其某个次语言&#xff08;sublanguage&#xff09;中&#xff0c;各种守则与通例都倾向简单、直观…

机器学习笔记-2

文章目录 一、Linear model二、How to represent this function三、Function with unknown parameter四、ReLU总结、A fancy name 一、Linear model 线性模型过于简单&#xff0c;有很大限制&#xff0c;我们需要更多复杂模式 蓝色是线性模型&#xff0c;线性模型无法去表示…

【.net core使用minio大文件分片上传】.net core使用minio大文件分片上传以及断点续传、秒传思路

版本&#xff1a;.net core 7 需求&#xff1a;net限制了上传的大小&#xff0c;只能上传25M上下的文件&#xff0c;如果上传一个八十多兆的文件&#xff0c;swagger接口报错&#xff0c;如果前端调用上传接口&#xff0c;会报CORS跨域错误&#xff0c;这篇文章介绍怎么使用分片…

【X线源】关于滨松MCS2软件的说明

【X线源】关于滨松MCS2软件的说明 1.软件背景2.MCS2界面3.MCS2操作4.常见问题 1.软件背景 滨松为了方便客户将滨松MFX集成进自己的系统&#xff0c;滨松提供了MFX二次开发相关的信息和Demo代码。参考博客说明&#xff1a; 【X线源】关于滨松MFX二次开发demo示例简介 https://…

一个Idea:爆改 T480

爆改 T480 准备大改 T480&#xff0c;家里有一台闲置很久的 T480&#xff0c;不舍得扔&#xff0c;打算升级一下。看了几位up主的视频后&#xff0c;决定动手改造。 计划如下 网卡&#xff1a;加装4G网卡硬盘&#xff1a;更换为 1T 的 NVMe 2280 固态硬盘内存&#xff1a;升…

Unity实战案例全解析 类宝可梦回合制的初级案例 源码分析(加了注释和流程图)

这是一个老教程了&#xff0c;但是对于没有写过回合制的初级程序同学来讲是比较适合的&#xff0c;也可以直接看源码&#xff0c;半小时内可以解决战斗 当然&#xff0c;我也没写过回合制系统所以就到处找&#xff0c;思路明白了就能自己修改了 视频教程 - 油管链接 Turn-Bas…

计算机组成原理(笔记7高速缓冲存储器Cache,计算机组成原理的重难点全、直接、组相连)

为什么要设立高速缓冲存储器 &#xff08;Cache&#xff09;&#xff1f; Cache是介于CPU和主存之间的小容量存储器&#xff0c;存取速度比主存快。它能高速地向CPU提供指令和数据&#xff0c;加快程序的执行速度。它是为了解决CPU和主存之间速度不匹配而采用的一项重要技术。…

代理商培训新策略:利用内部知识库提升培训效果

在当今竞争激烈的市场环境中&#xff0c;代理商作为企业与终端消费者之间的桥梁&#xff0c;其专业能力和服务质量直接影响着企业的市场表现和品牌形象。因此&#xff0c;对代理商进行系统而高效的培训&#xff0c;提升其业务技能和服务水平&#xff0c;成为企业不可忽视的重要…

靶场专用免杀工具

工具 SimpleShellcodeInjector 代码 #include <stdio.h> #include <Windows.h> int main(int argc, char* argv[]) {// HWND hWnd GetConsoleWindow();// ShowWindow( hWnd, SW_HIDE );unsigned int char_in_hex;char* shellcode argv[1];unsigned int iteratio…

SpringCloud集成nacos注册中心

SpringCloud集成nacos注册中心 1、Nacos服务端搭建 下载地址:https://github.com/alibaba/Nacos/releases 1)linux环境启停: ①:把我们的Nacos包解压 tar -zxvf nacos-server-1.1.4.tar.gz ②&#xff1a;cd 到我们的解压目录nacos cd nacos ③&#xff1a;进入到bin目录下…

mysql用户管理(user表列信息介绍,本质,管理操作),数据库的权限管理(权限列表,权限操作)

目录 用户管理 介绍 user表 介绍 列信息 Host User *_priv authentication_string 用户管理的本质 操作 创建用户 删除用户 修改用户信息 修改密码 自己修改 root用户修改指定用户的密码 数据库的权限 权限列表 给用户授权 查看权限 回收权限 刷新权限 …

1、HTML笔记

文章目录 计算机基础知识一、HTML基础Web标准(面试重点&#xff09;为什么需要Web标准Web标准的构成 HTML标签DOCTYPE和 lang 以及charset字符集的使用标题标签段落标签和换行标签文本格式化标签div和span标签图像标签和路径超链接标签注释标签特殊字符表格标签列表标签表单标签…

飞牛NAS未识别到网卡

最新都说国产免费的飞牛NAS非常好用&#xff0c;再也不用搞黑群辉了。 以前也没有搞过NAS&#xff0c;刚好借着这个机会学习一下NAS产品。 在虚拟机上安装&#xff0c;安装还挺顺利&#xff0c;就打算在买来的 也试试&#xff0c;结果系统都安装成功了&#xff0c;但是提示“…