ubuntu 20.04系统安装pytorch

news2024/9/21 20:49:40

1.1 安装gcc

安装cuda之前,首先应该安装gcc,安装cuda需要用到gcc,否则报错。可以先使用下方指令在终端查看是否已经安装gcc。

gcc --version

如果终端打印如下则说明已经安装。

如果显示“找不到命令 “gcc”......”使用下方指令安装

sudo apt-get update
sudo apt-get install gcc

1.2 查看cuda版本      

step1:查看显卡驱动支持cuda最高版本

安装cuda之前首先需要查看系统显卡驱动所支持的最高cuda版本,在终端使用如下之指令就可以查看。

nvidia-smi

step2 :查看pytorch支持的cuda版本

本次安装pytorch,是直接用pip安装,不安装anconda。在安装之前,要确定安装的版本,比如cuda版本,去PyTorch官网上查看cuda版本,避免安装错误的版本。如下Ubuntu20.04对应的cuda版本为11.8:

1.3 cuda安装

Step 1: 下载cuda 

      去duda官网CUDA Toolkit Archive | NVIDIA Developer,查看并下载对应的版本。如下载cuda11.8版本,并根据自己电脑系统进行选择设置:

Step2:  安装cuda

      在选择好后,会得到命令,打开终端(ctrl+alt+t)在终端中逐条输入即可。

下载和安装命令如下:

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
sudo sh cuda_11.8.0_520.61.05_linux.run

     安装过程中,弹出窗口按<上下键>选择“continue”,按键盘<回车键>,弹出窗口输入“accept”,按键盘<回车键>,弹出窗口使用<上下键>和<空格键>选择和取消选择,最后选择“install”点击键盘<回车键>,进行安装,如下图。一定要设置成红色标记框中所示,要不然会安装失败!!

安装好弹出如下图:

Step 3: 设置cuda环境变量

设置cuda环境变量,首先使用如下指令打开bashrc:

sudo gedit ~/.bashrc

打开的文档里最后添加下方两行代码:

export PATH=$PATH:/usr/local/cuda-11.8/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.8/lib64

保存关闭后,终端使用下方指令更新环境变量:

source ~/.bashrc

Step 4:验证cuda是否安装成功

使用下方指令验证cuda是否安装成功:

nvcc -V

打印如下即安装成功:

1.4 安装cudnn

       cuDNN下载连接地址:​​​​​​https://developer.nvidia.com/rdp/cudnn-archive

step1:下载cuDNN 8.6.0

      其实可以看到,cudnn不同版本都支持cuda11.x,本人选择cudnn8.6对应的cuda11.x进行安装的。感觉安装其他版本,应该也可以。

点击下载,下载需要登陆NVIDIA的账号,没有的可以注册一个,注册是免费的。

step2:安装cuDNN 8.6.0

下载好的文件一般默认在“下载”目录下。因此安装前先进入下载目录下:

cd /home/ub/下载/

使用下方指令运行cudnn-local-repo-ubuntu2204-8.6.0.163_1.0-1_amd64.deb文件:

sudo dpkg -i cudnn-local-repo-ubuntu2204-8.6.0.163_1.0-1_amd64.deb

终端打印如下:

step3:根据提示拷贝密钥

就是将上图中最后一行命令运行一遍,如下,把下面这行命令在终端运行下。

sudo cp /var/cudnn-local-repo-ubuntu2204-8.6.0.163/cudnn-local-FAED14DD-keyring.gpg /usr/share/keyrings/

step4:重点!重点!重点!
大部分人在这一部就找不到libcudnn8、libcudnn8-dev、libcudnn8-samples文件,导致无法安装成功,此处如果是安装在默认路径,可以cd至/var/cudnn-local-repo-ubuntu2204-8.9.0.131/目录下查看文件:

cd /var/cudnn-local-repo-ubuntu2204-8.6.0.163/

在该目录下就会看见这三个文件,使用下方指令分别进行安装:

sudo dpkg -i libcudnn8_8.6.0.163-1+cuda11.8_amd64.deb
sudo dpkg -i libcudnn8-dev_8.6.0.163-1+cuda11.8_amd64.deb
sudo dpkg -i libcudnn8-samples_8.6.0.163-1+cuda11.8_amd64.deb

终端打印如下:

step5:查看cuDNN安装结果:

cat /usr/include/x86_64-linux-gnu/cudnn_version_v8.h | grep CUDNN_MAJOR -A 2

打印版本号,安装成功了。

至此安装完成。

1.5 安装pytorch

登录PyTorch官网,根据自己系统,选择相应的版本,如下图所示:

得到安装命令:

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
打开终端(ctrl+alt+t),输入上述命令,即完不安装。

检查是否安装成功:

打开pycharm,输入如下命令:

import torch
print(torch.cuda.is_available())

如果返回true,表明pytorch安装成功。

1.6 pycharm环境设置

   如果成功pytorch,但是在pycharm中无法导入torch,那么可能是设置环境有问题,按照如下步骤,打开虚拟环境,选择python编译器,选择安装了pytorch对应的版本即可。

参考博客:

【1】【环境搭建】(五)Ubuntu22.04安装cuda_11.8.0+cudnn_8.6.0_cuda 11.8-CSDN博客

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

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

相关文章

阅读笔记5:董超底层视觉之美|时空的交错与融合——论视频超分辨率

原文链接&#xff1a;https://mp.weixin.qq.com/s/pmJ56Y0-dbIlYbHbJyrfAA 1. 多帧超分和时空超分 视频超分的本质就是多帧超分&#xff0c;多帧超分的历史远早于视频超分。 在早期&#xff0c;Super Resolution专指多帧超分&#xff0c;因为只有多帧超分才能补充进入真实的信…

Golang | Leetcode Golang题解之第368题最大整除子集

题目&#xff1a; 题解&#xff1a; func largestDivisibleSubset(nums []int) (res []int) {sort.Ints(nums)// 第 1 步&#xff1a;动态规划找出最大子集的个数、最大子集中的最大整数n : len(nums)dp : make([]int, n)for i : range dp {dp[i] 1}maxSize, maxVal : 1, 1fo…

对讲模块升级的重要性-OTA空中升级与串口升级

在现代通信设备的设计中&#xff0c;灵活的升级能力已成为评估模块性能的重要标准。无论是在开发过程中&#xff0c;还是在产品的生命周期内&#xff0c;支持OTA和串口升级的模块可以极大地提高设备的可维护性和适应性。 SA618F30&#xff0c;作为一款高性价比、高集成度的大功…

SSRF 302跳转攻击redis写入ssh公钥实现远程登录

目录 SSRF漏洞 SSRF攻击Redis 302跳转 漏洞复现&#xff1a; index.html: index.php: 攻击步骤&#xff1a; 1.生成ssh公钥数据&#xff1a; 2.用SSH公钥数据伪造Redis数据&#xff1a; 3.在自己的服务器上写302跳转&#xff1a; 4.最后尝试在.ssh目录下登录&#…

Golang | Leetcode Golang题解之第371题两整数之和

题目&#xff1a; 题解&#xff1a; func getSum(a, b int) int {for b ! 0 {carry : uint(a&b) << 1a ^ bb int(carry)}return a }

MySQL主从复制之GTID模式

目录 1 MySQL 主从复制 GTID 模式介绍 2 传统复制模式与GTID复制模式的区别 3 GTID模式核心参数 4 GTID 实现自动复制原理 4.1 GTID基本概念 4.2 GTID复制流程 5 GTID 实现自动定位 5.1 配置 my.cnf 5.2 配置 SLAVE 实现自动定位 5.3 测试 6 GTID 模式 故障转移的方法流程 6.1…

如何使用ssm实现宠物领养系统+vue

TOC ssm103宠物领养系统vue 课题背景 在当今的社会&#xff0c;可以说是信息技术的发展时代&#xff0c;在社会的方方面面无不涉及到各种信息的处理。信息是人们对客观世界的具体描述&#xff0c;是人们进行交流与联系的重要途径。人类社会就处在一个对信息进行有效合理的加…

mysql数据库----简单认识库的操作

目录 1.区分概念 2.什么是数据库 3.数据库的创建和销毁 4.数据库编码初识 5.查询系统默认编码配置 6.两个查询编码表的指令 7.创建指定编码的数据库 8.不同编码的区别 第一个编码方式&#xff1a; 第二个编码方式&#xff1a; 查询结果说明&#xff1a; 9.数据库的增…

QT Quick QML 网络助手——TCP客户端

GitHub 源码: QmlLearningPro &#xff0c;选择子工程 Nettools.pro QML 其它文章请点击这里: QT QUICK QML 学习笔记 ● 运行效果&#xff1a; 左侧为常用的网络调试工具&#xff0c;右侧为本项目 UI 效果&#xff0c;前端使用 QML &#xff0c;后端使用C &#xff…

ArkTs之:数据懒加载——LazyForEach的用法

官方描述 LazyForEach从提供的数据源中按需迭代数据&#xff0c;并在每次迭代过程中创建相应的组件。当在滚动容器中使用了LazyForEach&#xff0c;框架会根据滚动容器可视区域按需创建组件&#xff0c;当组件滑出可视区域外时&#xff0c;框架会进行组件销毁回收以降低内存占…

我在某日重新下载了idea

# 1 Maven设置 2 字体样式,字体颜色 3 插件 1,fitten code和通义灵码 2,one dark theme主题 3,mybatisX 4,Rainbow Brackets 5,Key Promoter X 设置 自动导入包

Ps:首选项 - 常规

Ps菜单&#xff1a;编辑/首选项 Edit/Preferences 快捷键&#xff1a;Ctrl K Photoshop 首选项中的“常规” General选项卡主要用于调整 Photoshop 的整体工作行为和用户体验。这些设置让用户可以根据个人习惯和工作流程定制软件的响应方式和界面布局&#xff0c;从而提高工作…

下载的word中的mathtype公式双击无法打开编辑器

原因分析&#xff1a; 该word中的此公式不是通过word内置的mathtype插入公式的&#xff0c;而是从mathtype编辑器中复制粘贴到word中的。 后者的方式当被其他人下载接收后&#xff0c;无法修改此公式&#xff0c;而且该公式也不能被其他人复制&#xff0c;会报错如下&#xff…

GPT-4o System Card is released

GPT-4o System Card is released, including red teaming, frontier risk evaluations, and other key practices for industrial-strength Large Language Models. https://openai.com/index/gpt-4o-system-card/ 报告链接 企业级生成式人工智能LLM大模型技术、算法及案例实战…

5G毫米波测试助力突破高频段设备局限,实现高效外场测试

作者介绍 一、方案背景 随着业务对带宽需求的不断增加&#xff0c;通信频谱不断向更高频谱延伸&#xff0c;5G毫米波具有丰富的频率资源&#xff0c;是移动通信技术演进的必然方向。下图是ITU的WRC-19会议发布的目前5G所占用频段。 从图中可以看出&#xff0c;在5G毫米波测试中…

AgentQ,超越人类的人工智能代理

MultiOn 宣布推出一款新代理AgentQ&#xff0c;这是一款令人惊叹的产品&#xff0c;它整合了我最近一直在讨论的大部分内容&#xff1a;将 LLM 与搜索相结合。 但这个经纪人很特殊。 与其他代理不同的是&#xff0c;由于巧妙地使用了对齐技术&#xff0c;该代理可以从好的和坏的…

redis | 认识非关系数据库Redis的位图数据类型

Redis 非关 kv型 位图常用命令应用场景python操作位图 位图 位图不是真正的数据类型&#xff0c;它是定义在字符串类型中 01100001 97 61 a 01100010 98 62 b 一个字符串类型的值最多能存储512M字节的内容 位上限&#xff1a;2^32 常用命令 SETBIT \x : 16进制 没有key值 GE…

npm 设置代理

目录 前言 一、查看npm配置 二、设置代理 三、删除代理 四、代理认证 往期回顾 前言 在使用npm时&#xff0c;如果您处于需要使用代理的网络环境中&#xff0c;您可以通过配置npm来设置代理。 一、查看npm配置 npm config list或者单独查看 npm config get proxynpm co…

Using Azure openAI key rotation automation

题意&#xff1a;使用 Azure OpenAI 密钥轮换自动化 问题背景&#xff1a; We are planning to do the Azure OpenAI key rotation automatically. How can we achieve this? Do we have terraform resource for this. 我们计划自动执行 Azure OpenAI 密钥轮换。我们如何实现…

垃圾分类笔记YOLOV5(一)-pip换源-口罩识别-训练自己的数据集

pip换源网址 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple不进行配置的是临时换源 1、从github上下载YOLOV5的代码 翻墙软件clash 数据集地址roboflow clash配置一键导入 哔哩哔哩视频地址 数据集的下载格式&#xff1a; 2、修改自己的数据…