【autodl/linux配环境心得:conda/本地配cuda,cudnn及pytorch心得】

news2024/10/7 16:26:53

linux配环境心得:conda/本地配cuda,cudnn及pytorch心得

  • 我们服务器遇到的大多数找不到包的问题
  • 一,服务器安装cuda和cudnn
    • 使用conda在线安装cuda和cudnn
    • 使用conda进行本地安装
    • 检查conda安装的cuda和cudnn
    • 本地直接安装cuda和cudnn
      • 方法一:直接更换镜像
      • 方法二:在nvidia官网下载cuda和cudnn之后进行安装
  • 二:服务器安装pytorch
    • 换源或换命令安装pytorch
    • 本地安装pytorch
        • 报错: xxx.whl is not a supported wheel on this platform
    • 检查pytorch是否成功安装:
  • 三:服务器运行git命令(git reset/ git clone)

我们服务器遇到的大多数找不到包的问题

都是因为国内的网络环境以及墙的问题,导致我们服务器使用了源,或conda使用了源的问题。
使用命令: conda install ,提示找不到包,很可能是因为我们使用了源,然后源里没存那个包。
使用命令: conda search cudatoolkit,找不到包,那其实是这个源里没这个包,不是说conda真的装不上那个特定版本的cuda。

又比如,使用git clone, git reset,一直报很奇怪的错,网上搜索的方法试了又试,都解决不了这个问题,之后发现是国内链接github比较慢,使用一下学术加速就解决了。

又比如,conda install pytorch -c pytorch,怎么都装不上,找不到包,也是连接pytorch官网比较满

所以这里,笔者通过在autodl上搭建环境的例子,重新整一遍linux新环境中配置cuda,cudnn,pytorch以及安装好一个github包,并通过git硬调apex版本,来掩饰一下,当国内网不好,或使用的服务器网不好的时候,我们有多少种方法把环境给配好。(比如本地安装,换源,conda换pip之类的。)

一,服务器安装cuda和cudnn

使用conda在线安装cuda和cudnn

一般情况下,我们使用conda在虚拟环境中安装cuda和cudnn,我们会先搜索conda能提供的cuda包和cudnn包再安装。
比如使用如下所示代码:

conda search cudatoolkit
conda search cudnn

之后安装显示出来的列表里图里有的cuda和cudnn版本。

conda install cudatoolkit==xx.xx
conda install cudnn==xx.xx

比如当我在autodl上默认环境中运行:conda search cudatoolkit时,显示出来的是如下画面:
在这里插入图片描述
可以看到,显示出来的包不全,导致我们配环境也配的很困难(conda search cudnn同理,同样是不全。)
不管是直接使用命令进行安装conda install cudatoolkit==xx.xx,还是使用命令conda search cudatoolkit --info自己根据链接下载里面对应的包再本地安装,前提是我们得能搜索到对应的包啊,连包都搜索不到怎么安装(比如我们想安装11.1版本的cuda,我们至少得能搜索到cuda11.1啊,但这里的cudatoolkit连11.1都搜索不到。)

为什么conda能提供的cuda版本和cudnn版本这么少?我尝试运行了一下这两行命令进行搜索:

conda search cudatoolkit -c conda-forge
conda search cudnn -c conda-forge

这回能搜索到一系列的包。
在这里插入图片描述
确定原因:是网络和源的问题,导致conda搜索不到。
尝试换一下源再搜索:

#conda清除添加源,恢复默认源
conda config --remove-key channels
#添加一些清华源(有时候清华源崩了,可以换阿里源,阿里源崩了,可以换中科大源。国内安环境遇到问题,比如查找不到包的问题,很多都是网络的问题)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/

这时候再重新运行命令:

conda search cudatoolkit
conda search cudnn

这时候就能显示一系列能安装的conda 包了(conda搜索不到包,还是源的问题。)
在这里插入图片描述
这时候运行命令就可以了:

conda install cudatoolkit==xx.xx
conda install cudnn==xx.xx

使用conda进行本地安装

有时候直接去搜索conda-forge,去安装的时候,因为服务器没法访问外网,如果不是用源里面的文件,可能下载速度会很慢。我们可以使用这条命令:

conda search cudatoolkit --info

在这里插入图片描述
访问搜索出来的包的url,然后自己下载好,上传到服务器上,之后使用命令安装。
比如我们下载的两个包是cudatoolkit-11.3.1-h2bc3f7f_2.conda和cudnn-8.2.1-cuda11.3_0.conda,我们可以运行这两个命令进行安装。(下载的如果是压缩包,记得解压)

conda install ./cudatoolkit-11.3.1-h2bc3f7f_2.conda
conda install ./cudnn-8.2.1-cuda11.3_0.conda

检查conda安装的cuda和cudnn

conda list | grep cudatoolkit
conda list | grep cudnn

本地直接安装cuda和cudnn

方法一:直接更换镜像

实际上我们没必要把每一步都按照自己的想法去强迫其实现,这样会很浪费我们的时间,有时候同一张卡,我们直接升降配置换个镜像,就可以配好了。这能极大的提升我们做科研的速度。(不过我还是想把整体配环境的流程配一遍)

方法二:在nvidia官网下载cuda和cudnn之后进行安装

比如我们想安装cuda11.1.1和配套的cudnn7.6.5,我们首先要在nvidia官网的cuda-toolkit页面下载cuda11.0。
请添加图片描述
我们点进该页面,之后选择相关的文件,然后下载就可以了。
在这里插入图片描述
之后按照这个页面下面的链接运行即可成功安装上。
在这里插入图片描述
之后是配置cuda的环境变量的部分。具体安装过程如图所示:安装CUDA并配置环境变量。或参考这个帖子的配置环境变量过程:Linux系统下CUDA和cuDNN环境配置 。

接着我们进入nvidia-cudnn网址进一步下载cudnn
(这一步需要登陆)

安装cudnn之后,要执行一些列复制头文件的命令,参考此网址即可。对命令具体不懂的,可以询问ChatGPT 。

二:服务器安装pytorch

换源或换命令安装pytorch

pytorch官网

比如官网的conda安装命令是:

conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 -c pytorch

实际上这个版本还有对应的pip安装命令:

pip install torch==1.8.0+cu111 torchvision==0.9.0+cu111 torchaudio==0.8.0 -f https://download.pytorch.org/whl/torch_stable.html

在安装pytorch的过程中,我们还可以换源
换源安装pytorch

本地安装pytorch

pytorch离线下载网址
比如如果pytorch官网告诉我们的安装命令是:

conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 -c pytorch

我们可以去上面的离线包下载网址,把对应python版本和cuda版本的pytorch,torchvision还有torchaudio都下载上:

torchvision-0.9.0+cu111-cp38-cp38-linux_x86_64.whl
torchaudio-0.8.0-cp38-cp38-linux_x86_64.whl
torch-1.8.0+cu111-cp38-cp38-linux_x86_64.whl

之后我们把下载的包上传到服务器以后,在本地路径上直接pip安装就可以了。

pip install torch-1.8.0+cu111-cp38-cp38-linux_x86_64.whl
pip install torchvision-0.9.0+cu111-cp38-cp38-linux_x86_64.whl
pip install torchaudio-0.8.0-cp38-cp38-linux_x86_64.whl

报错: xxx.whl is not a supported wheel on this platform

不过本地安装pytorch的whl文件的一个问题就是,我们可能需要改一下文件的名字(因为新版的pip必须把文件名按规定的语法来修改才能安装上)
具体可以参考这三个网址:ERROR: torch-1.12.0+cu116-cp38-cp38-win_amd64.whl is not a supported wheel on this platform.,xxx.whl is not a supported wheel on this platform-查看pip支持的安装包版本,用whl安装pytorch踩坑实录(whl is not a supported wheel on this platform.)​​
我改了文件名后,成功安装上了。

我改的文件名:
torch-1.8.0+cu111-py38-none-linux_x86_64.whl
然后就成功安装上了
pip install torchvision-0.9.0+cu111-py38-none-linux_x86_64.whl
最后:
pip install torchaudio-0.8.0-py38-none-linux_x86_64.whl

检查pytorch是否成功安装:

import torch
print(torch.__version__)
print(torch.cuda.is_available())
# 打印当前可见可用的GPU数目
print(torch.cuda.device_count())
# 获取GPU名字
print(torch.cuda.get_device_name())

三:服务器运行git命令(git reset/ git clone)

这个同样是源或网络的问题,autodl有一个学术加速。

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

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

相关文章

jeesite实现excel导入功能(保姆级图文教程)

文章目录 前言一、准备工作1.准备一个excel模板,放入static目录2.application.yml文件中设置文件存储路径3.使用easyexcel插件解析excel数据,pom文件导入easyexcel二、使用步骤1.列表页添加下载模板按钮2.表单页添加文件上传3. 创建excel解析对应实体4.后台完成文件上传代码,…

请体验一下falcon 180b 大语言模型的感觉

引言 由Technology Innovation Institute(T四训练的开源大模型Falcon 180B登陆Hugging Face!Falcon180B为开源大模型树立了全新的标杆。作为当前最大的开源大模型,有l80B参数并且是在在3.5万亿token的TII RefinedWeb数据集上进行训练,这也是目前…

冠达管理:减肥药概念再度爆发,常山药业两连板,翰宇药业等大涨

减肥药概念12日盘中再度拉升,到发稿,常山药业“20cm”涨停,翰宇药业涨超14%,德展健康涨停,金凯生科涨近9%,争气股份、普利制药、昊帆生物涨约5%,诺泰生物、圣诺生物、华森制药等涨超4%。 常山药…

AI数字人软件系统开发框架

AI数字人(AI Digital Human)开发涉及到多个领域,包括自然语言处理、计算机视觉、声音合成、人机交互等。以下是一些用于开发AI数字人的开发框架和工具,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开…

2023贵州MES与ERP协同配合信息化解决方案,结合应用优势研究-亿发

在当今竞争激烈的商业环境中,企业转型升级已经成为生存和发展的重要选择。而在这一过程中,ERP生产管理和智能制造MES系统的融合应用成为推动智能制造的关键引擎,为企业带来了优势。 ERP系统的作用: ERP系统是企业管理的重要部分&…

openpnp - 二手西门子电动飞达 - 物料编带安装的正确姿势

文章目录 openpnp - 二手西门子电动飞达 - 物料编带安装的正确姿势概述将料头用接料引带加长接料引带的规格将编带送入飞达的编带导引槽物料正常载入完成的子飞达没有错误指示灯END openpnp - 二手西门子电动飞达 - 物料编带安装的正确姿势 概述 手头一堆2手的西门子电动飞达…

手工测试项目实战

功能测试实战 项目介绍及说明 项目部署 开发语言 web服务器 asp IIS php apache java comcat 将其放在网站上,映射地址 查看文件中是否有相对路径…/文件表示方式,有的话需要启用父路径,并点击应用 项目为32位,但win7虚拟机…

.Net JIT二进制骚操DHVM破解篇

前言 经研究,号称最强.Net加密软件DNGuard HVM(以下简称DHVM),五行代码基本上可以优雅的破解它,本篇看下。友情提示,以下全是二进制汇编骚操,慎入。原文:.Net JIT二进制骚操DHVM破解篇 概括 示例: 非常…

Qt打包工具windeployqt自动打包exe程序

Qt打包工具windeployqt自动打包exe程序 一、Qt打包工具windeployqt自动打包exe程序1.问题所在2. 如何使用3. 注意点3.1 第一点3.2 第二点3.3 更直接的解决方法(不是最优的办法,但是方便好用) 二、应用程序的发布 一、Qt打包工具windeployqt自…

Android 之 Compose 开发基础

1、中文官网地址: https://developer.android.google.cn/courses/android-basics-compose/course?hlzh-cn 2、首个Android应用 2、构建应用界面

2023年9月软考中级系统集成项目管理工程师报名来这里

系统集成项目管理工程师是全国计算机技术与软件专业技术资格(水平)考试(简称软考)项目之一,是由国家人力资源和社会保障部、工业和信息化部共同组织的国家级考试,既属于国家职业资格考试,又是职…

正点原子逻辑分析仪DL16

最近购买了正点原子的逻辑分析仪,现在记录下此逻辑分析仪的用法。 逻辑分析仪不到半个巴掌大小。 安装下上位机软件,一路点击是即可。 用zadig安装下ATK-Logic的驱动。 安装完驱动后,此时将逻辑分析仪插上电脑后,指示灯变为绿色…

SpringBoot2.0(过滤器,监听器,拦截器)

目录 一,过滤器1.1,自定义Filter1.2,启动类代码1.2,创建filter类和LoginFilter包1.2.1,编写loginFilter类 过滤器代码1.2.2,创建二个Controller类 二,监听器2.1,自定义监听器2.2&…

基于虚拟仿真技术的汽车燃油泵控制

在当前激烈的竞争环境下,汽车行业正在加速产业和技术更迭,整车厂对大型ECU嵌入式控制系统和软件的需求迫在眉睫。 然而,复杂而庞大的汽车系统往往由多个物理系统组成,系统所对应的模型都需要在不同的领域实现:发动机、…

Leetcode算法入门与数组丨1. 数据结构与算法简介

文章目录 前言1 数据结构与算法1.1 数据结构1.2 算法 2 算法复杂度2.1 算法复杂度简介2.2 时间复杂度2.3 空间复杂度 3 总结 前言 Datawhale组队学习丨9月Leetcode算法入门与数组丨打卡笔记 这篇博客以及接下来几篇将会是一个 入门型 的文章,主要是自己学习的一个…

Leaflet入门,原生html网页如何使用Leaflet地图

前言 本章讲解如何不使用vue或react的情况下,在原生html网页中使用Leaflet地图加载地图的功能。 以高德地图xyz瓦片地图为例。 示例演示效果 vue如何使用Leaflet vue2如何使用:《Leaflet入门,如何使用vue2-leaflet实现vue2双向绑定式的使用Leaflet地图,以及初始化后拿到…

【直接运行TS文件的三种方法】

直接运行TS文件的三种方法 文章目录 直接运行TS文件的三种方法法一:将 ts 编译成 js,然后运行 js 文件法二:用 ts-node 直接运行 ts法三:webstorm中直接运行ts(TypeScript) 法一:将 ts 编译成 js,然后运行 …

SpringBoot项目--电脑商城【显示购物车列表】

1.持久层 1.1规划需要执行的SQL语句 这里需要将商品表和购物车表进行连表查询 显示某用户的购物车列表数据的SQL语句大致是 多表查询如果字段不重复则不需要显示的表面表名 selectcid, #日后勾选购物车商品模块需要用到cid来确定勾选的是购物车表的哪一条数据uid, #感觉没必要…

教你如何利用人工智能技术提升气象、海洋、水文领域工作学习效率

查看原文>>>基于Python机器学习、深度学习提升气象、海洋、水文领域实践应用能力 Python是功能强大、免费、开源,实现面向对象的编程语言,能够在不同操作系统和平台使用,简洁的语法和解释性语言使其成为理想的脚本语言。除了标准库…

小程序 navigateBack 携带参数返回的三种方式(详细)

如果觉着主图好看,点个赞,你早晚也会看到这么好看的景色! 第一种方式 getCurrentPages 获取当前页面栈。数组中第一个元素为首页,最后一个元素为当前页面。不要尝试修改页面栈,会导致路由以及页面状态错误。不要在 App.onLaunch 的时候调用 getCurrentPages(),此时 page …