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

news2024/12/23 4:09:34

【深度学习代码调试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欸 。如果你喜欢我的文章,欢迎三连给我鼓励和支持:👍点赞 📁 关注 💬评论,我会给大家带来更多有用有趣的文章。
原文链接 👉 ,⚡️更新更及时。

欢迎大家添加好友交流。

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

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

相关文章

AUTOSAR_EXP_ARAComAPI的5章笔记(13)

☞返回总目录 5.4.7 事件(Events) 在骨架侧,服务实现负责通知事件的发生。如 5.4.2 RadarService Skeleton Class 所示,骨架为每个事件提供一个事件包装类的成员。骨架的事件包装类与代理的事件包装类看起来明显不同。 在骨架端…

论文阅读:On determining the hinterlands of China‘s foreign trade container ports

集装箱港口腹地的边界线,只要存在,就可以作为未来港口发展和基础设施规划的参考点。在早期划定中国港口腹地的努力中,要么考虑的港口数量有限,要么仅根据港口总吞吐量划定腹地。因此,这些研究都没有让我们清楚地了解共…

快速理解AUTOSAR CP的软件架构层次以及各层的作用

在 AUTOSAR CP 的架构中,软件分为 应用层 (App)、运行时环境 (RTE) 和 基础软件层 (BSW) 三个主要层级。下面是每一层的主要功能与简单的代码示例来展示它们之间的关系。 1. 概述 应用层 (App):包含应用程序代码,主要实现业务逻辑。应用层通…

DeepFM模型代码详解

直到看到这篇文章,我才搞明白类别特征怎么做lookup的,也看明白了代码逻辑。如果你看完没懂,私信留下wx,给你讲懂。 1、Deepfm 的原理,DeepFM 是一个模型还是代表了一类模型,DeepFM 对 FM 做了什么样的改进…

【时时三省】(C语言基础)函数介绍strcat

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 strcat 字符串追加 示例: 比如我要把world加到hello后面去 就可以用这个 还有一种方法是这样 这两个代码的意思是一样的 只是写法不一样 写的时候要注意这些 •源字符串必须…

DAB-DETR: DYNAMIC ANCHOR BOXES ARE BETTER QUERIES FOR DETR论文笔记

原文链接 [2201.12329] DAB-DETR: Dynamic Anchor Boxes are Better Queries for DETR (arxiv.org)https://arxiv.org/abs/2201.12329 原文笔记 在本文中,我们提出了一种新的查询公式,使用动态锚框进行DETR (DEtection TRansformer),并对查…

探索人工智能在数学教育上的应用——使用大规模语言模型解决数学问题的潜力和挑战

概述 论文地址:https://arxiv.org/abs/2402.00157 数学推理是人类智能的重要组成部分,人工智能界不断寻求应对数学挑战的方法,而在这一过程中,人工智能的能力需要进一步提高。从文本理解到图像解读,从表格分析到符号操…

大数据|MapReduce编程原理与应用

在大数据时代的浪潮中,MapReduce作为一种高效处理海量数据的编程模型,自其诞生以来便成为了数据处理领域的基石。本文旨在深入探讨MapReduce的基本原理、典型应用以及其在未来技术发展趋势中的展望,帮助读者更好地理解并应用这一关键技术。 一…

数制转换及交换机

数制转换 非位置化数字系统:罗马数字 位置化数字系统:二进制,八进制,十进制,十六进制 十进制数: 符号:2 2 2位置:2 1 0位权:该数字的真实大小 该位置上的数基数的位置…

如何设计开发RTSP直播播放器?

技术背景 我们在对接RTSP直播播放器相关技术诉求的时候,好多开发者,除了选用成熟的RTSP播放器外,还想知其然知其所以然,对RTSP播放器的整体开发有个基础的了解,方便方案之作和技术延伸。本文抛砖引玉,做个…

所有程序员的白嫖圣地-github

内容汇总 认识github页面如何从github下载资源git配置如何通过github管理工程代码 有人问github怎么用,几分钟了解这个每个程序员都在用的白嫖圣地。 打开github主界面,映入眼帘的是Home面板,它的作用是显示我们关注的人、点赞的项目等更新…

一款非常有用且高效的国产的Linux运维面板:1Panel介绍

1Panel介绍 一、1panel介绍二、1panel的安装1、不同系统安装2、安装日志3、访问地址 三、1panel的卸载1、停止服务2、卸载服务3、清理残留文件4、清除日志文件5、验证卸载是否成功 四、1panel的功能介绍1、服务器资源使用情况快速监控2、文件管理器简单易用3、创建和管理网站轻…

【Linux操作系统】进程等待

目录 一、什么是进程等待?二、为什么要进行等待?三、进程等待方法1.wait函数2.waitpid3.status阻塞等待和非阻塞等待(轮询等待)1.阻塞等待2.非阻塞等待 四、代码举例 一、什么是进程等待? "进程等待"是指一…

基于springboot摄影跟拍预定管理系统

作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 系统展示 【2024最新】基于JavaSpringBootVueMySQL的,前后端分离。 开发语言:Java数据库:MySQL技术:…

Finops成本优化企业实践-可规划篇

引言:本篇假设我们要在云上新增一个应用,讨论其在单体、failover、DR、集群模式下的成本规划。 假设该应用base on Linux,硬件要求是8cores、64G mem的云主机,并搭配500g内存,至少部署在一台云主机上。我们有开发、测…

Java项目: 基于SpringBoot+mysql+maven+vue林业产品推荐系统(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismavenvue林业产品推荐系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操…

【Linux】解锁软硬链接奥秘,高效动静态库管理的实战技巧

软硬连接和动静态库 1. 软链接1.1. 概念1.2. 特点1.3. 应用场景 2. 硬链接2.1. 概念2.2. 硬链计数2.3. 特点2.4. 应用场景 3. 动静态库3.1 库存在的原因3.2. 静态库制作与使用3.2.1 打包3.2.2. 使用 3.3. 动态库制作与使用3.3.1. 打包3.3.2. 使用 4. 解决动态库查不到的4种方法…

GStreamer 简明教程(七):实现管道的动态数据流

系列文章目录 GStreamer 简明教程(一):环境搭建,运行 Basic Tutorial 1 Hello world! GStreamer 简明教程(二):基本概念介绍,Element 和 Pipeline GStreamer 简明教程(三…

多场景多任务建模(三): M2M(Multi-Scenario Multi-Task Meta Learning)

多场景建模: STAR(Star Topology Adaptive Recommender) 多场景建模(二): SAR-Net(Scenario-Aware Ranking Network) 前面两篇文章,讲述了关于多场景的建模方案,其中可以看到很多关于多任务学习的影子&…

OGG错误:ORA-28000:the account is locked

问题描述 问题分析 从错误看,应该是ogg的角色锁定了,需要解锁 解决方案 解锁用户 SQL> alter user GGR_OGSREPO account unlock;