Ubuntu配置深度学习环境(TensorFlow和pyTorch)

文章目录

  • 一、CUDA安装
    • 1.1 安装显卡驱动
    • 1.2 CUDA安装
    • 1.3 安装cuDNN
  • 二、Anaconda安装
  • 三、安装TensorFlow和pyTorch
    • 3.1 安装pyTorch
    • 3.2 安装TensorFlow2
  • 四、安装pyCharm
    • 4.1 pyCharm的安装
    • 4.2 关联anaconda的Python解释器
  • 五、VScode配置anaconda的Python虚拟环境


前言:最好是去这里看一下TensorFlow对应的CUDA版本,按照要求的版本安装,我是因为有其他程序必须要11.6才没有按照这个要求安装
在这里插入图片描述

一、CUDA安装

1.1 安装显卡驱动

查看推荐显卡

ubuntu-drivers devices

在这里插入图片描述

安装recommend推荐显卡版本,这里推荐的是535版本

sudo apt-get install nvidia-driver-535

要选择版本不然会自动更新内核。 但是我安装535会黑屏,只能安装了510,由于是刚安装的系统,更新了内核也没太大的影响,另外安装版本太低的话也不行,因为下面安装CUDA要求最小版本

1.2 CUDA安装

使用手动安装方法:

nvidia-smi

查看显卡驱动支持最高CUDA版本是12.1, 到cuda-toolkit-archive,选择需要的CUDA版本下载,如下图,选择runfile(local),并使用生成的指令进行下载和安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

回车取消安装显卡驱动,然后选择最后的安装:
在这里插入图片描述
在这里插入图片描述

安装成功之后环境配置,在.bashrc文件末尾添加环境变量:

sudo gedit ~/.bashrc
# 添加以下内容:
export PATH=/usr/local/cuda-11.6/bin${PATH:+:${PATH}} 
export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

或者终端输入以下命令添加:

# Taken from: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#post-installation-actions
echo 'export PATH=/usr/local/cuda-11.6/bin${PATH:+:${PATH}}' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.6/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}' >> ~/.bashrc

验证是否安装成功

nvcc -V

在这里插入图片描述

1.3 安装cuDNN

成功安装完CUDA之后,官网下载CUDA对应版本的cuDNN,前往cudnn-archive(需要注册账号),这里我选择的是8.9.4版本的cuDNN(Local Installer for Linux x86_64 (Tar)),对应11.x版本的CUDA:
在这里插入图片描述
下载完成后,在文件所在目录解压缩,注意自己下载文件的名称

tar -xvf cudnn-linux-x86_64-8.9.4.25_cuda11-archive.tar.xz

解压缩完成后,将部分文件复制转移/usr/local(注意:自己下载文件的名称, cudnn8.0以上会将版本信息更新到cudnn_version.h文件中,也需要将这个文件复制,否则验证的时候会没有反应) :

cd cudnn-linux-x86_64-8.9.4.25_cuda11-archive
sudo cp include/cudnn.h /usr/local/cuda/include/ 
sudo cp lib/libcudnn* /usr/local/cuda/lib64/ 
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/libcudnn*
sudo cp include/cudnn_version.h /usr/local/cuda/include/
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2  #验证

二、Anaconda安装

进入Anaconda官网,点击Download下载(Anaconda会根据访问网页所使用的系统下载对应的版本,比如我这里下载的是Anaconda3-2023.03-Linux-x86_64.sh)

在这里插入图片描述
安装Anaconda

bash Anaconda3-2023.03-Linux-x86_64.sh

(1)查看安装协议,一直按Enter直到出现 Do you accept the license terms? [yes|no] ,输入yes即可继续安装;
(2)输入yes后会提示确认安装位置,这里点击Enter,默认即可;
(3)初始化Anaconda,这一步只需要根据提示输入yes即可;

在这里插入图片描述
在这里插入图片描述
重启终端进入conda基础环境,可以检查一下在此环境下的python位置和版本:
在这里插入图片描述
如果希望 conda 的基础环境在启动终端时不被激活,将 auto_activate_base 参数设置为 false:

conda config --set auto_activate_base false

后面想要再进入conda的base环境,只需要使用conda指令激活:

conda activate base

在这里插入图片描述

conda常用命令:

  • 创建conda环境
conda create --name 环境名 包名(多个包名用空格分隔)
# 例如:conda create --name my_env python=3.7 numpy pandas scipy
  • 激活(切换)conda环境
conda activate 环境名
# 例如:conda activate bas
  • 显示已创建的conda环境
conda info --envs
# 或者:conda info -e,亦或者conda env list
  • 删除指定的conda环境,
# 通过环境名删除
conda remove --name 要删除的环境名 --all# 通过指定环境文件位置删除(这个方法可以删除不同位置的同名环境)
conda remove -p 要删除的环境所在位置 --all
# 例如:conda remove -p /home/zard/anaconda3/envs/MaskRCNN --all

三、安装TensorFlow和pyTorch

3.1 安装pyTorch

进入pyTorch官网(https://pytorch.org/),往下拉,选择你的环境生成安装命令:
在这里插入图片描述
复制安装命令(我改成了11.6):

conda install pytorch torchvision torchaudio pytorch-cuda=11.6 -c pytorch -c nvidia

在这里插入图片描述
输入y安装(可能需要科学上网):
在这里插入图片描述
测试是否能够使用:

ipythonimport torch
torch.cuda.is_availbale()

3.2 安装TensorFlow2

# 创建一个虚拟环境
conda create -n tensorflow-gpu python=3.7
# 激活环境
conda activate tensorflow-gpupip install ipython
pip install tensorflow -U

在这里插入图片描述

注意不要安装tensorflow-gpu,会报以下错误,根据提示消息这时候安装tensorflow也是可以使用GPU的。
两种方法都可以让你的 TensorFlow 安装使用 GPU 加速(事实上,自 TensorFlow 2.1 版本开始,两个包在功能上基本相同),具体来说:

  • 使用 pip install --upgrade tensorflow 安装 TensorFlow 时,TensorFlow 应该能够自动检测和使用可用的 GPU 进行加速,前提是您的系统满足了相关的 GPU 驱动程序、CUDA 工具包和 cuDNN 库的要求。这是因为 TensorFlow 是一个通用框架,它可以在 CPU 和 GPU 上运行,但需要正确的配置和依赖项来利用 GPU。
  • 使用 pip install --upgrade tensorflow-gpu 安装 TensorFlow-GPU 版本时,它已经专门配置为利用 GPU 加速,无需额外的配置。

无论选择哪种方法,只要满足了 GPU 驱动程序、CUDA 工具包和 cuDNN 库的要求,TensorFlow 都应该能够正确地使用 GPU 进行加速。
在这里插入图片描述
可以通过检查可用的 GPU 数量来验证是否已启用 GPU 加速:

import tensorflow as tf
tf.test.is_gpu_available()
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))

在这里插入图片描述

四、安装pyCharm

4.1 pyCharm的安装

进入官网(https://www.jetbrains.com.cn/en-us/pycharm/)下载pycharm
在这里插入图片描述
点击下载,往下翻,下载Community版本
在这里插入图片描述
下载完成后解压,进入bin目录,运行.sh文件

cd pycharm-community-2023.2.1/bin/
sh pycharm.sh

在这里插入图片描述
在这里插入图片描述
界面启动后,在打开的Pycharm软件界面左下角,点击设置图标,选择Create Deasktop Entry。关闭Pycharm,点击左下角显示应用程序,找到Pycharm,即可开始使用
点击进入plugins,选择Marketplace,搜索chinese,找到中文语言包(图标上有个“汉”字)进行安装,安装好后重启pycharm即可

在这里插入图片描述

4.2 关联anaconda的Python解释器

创建新项目之后,打开设置,选择python解释器:
在这里插入图片描述
添加python解释器,选择Conda环境,选择我们之前创建的虚拟环境:
在这里插入图片描述
可以看到我们安装的库已经有了
在这里插入图片描述
在这里插入图片描述

五、VScode配置anaconda的Python虚拟环境

实际上,我更习惯使用VScode,其简洁方便,我在使用Pycharm时总是遇到卡死的情况,并且字体,主题等等令人不爽,下面使用VScode配置anaconda的Python虚拟环境
首先我们要知道虚拟环境的python解释器位置,它位于#{YOUHOME}/anaconda3/envs/#{YOUEVN}/bin/python,例如我上面创建的虚拟环境:
在这里插入图片描述
然后在VScode左下角的设置中搜索python path,找到解释器路径设置,填入虚拟环境的解释器:
在这里插入图片描述
接下来就可以愉快使用啦(按F5运行哦):
在这里插入图片描述

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

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

相关文章

一维数组和二维数组的使用(char类型)

目录 导读1. 字符数组1.1 字符数组的创建1.2 字符数组的初始化1.3 不同初始化在内存中的不同1.3.1 strlen测试1.3.2 sizeof测试1.3.3 差异原因 1.4 字符数组的使用 2. 数组越界3. 数组作为函数参数博主有话说 导读 我们在前面讲到了 int 类型的数组的创建和使用: 一…

焕新古文化传承之路,AI为古彝文识别赋能

目录 1 古彝文与古典保护 2 古文识别的挑战 2.1 西文与汉文OCR 2.2 古彝文识别难点 3 合合信息:古彝文保护新思路 3.1 图像矫正 3.2 图像增强 3.3 语义理解 3.4 工程技巧 4 总结 1 古彝文与古典保护 彝文指的是云南、贵州、四川等地的彝族人使用的文字&am…

行为型设计模式——责任链模式

摘要 责任链模式(Chain of responsibility pattern): 通过责任链模式, 你可以为某个请求创建一个对象链. 每个对象依序检查此请求并对其进行处理或者将它传给链中的下一个对象。 一、责任链模式意图 职责链模式(Chain Of Responsibility) 是一种行为设…

MAC手动修复『已损坏』问题 终端运行命令报错处理

安装一些第三方软件会出现已损坏的报错提醒,需要用命令sudo xattr -rd com.apple.quarantine进行修复,但是终端提示命令错误,怎么版 错误有几种: No module named ‘pkg_resources’ 这是mac电脑上python2,python3并…

mfc140u.dll是什么文件?mfc140u放在哪个文件夹?详细修复教程

今天我想和大家分享一个非常常见的问题——mfc140u.dll丢失的困扰以及解决方法。 首先,让我们来了解一下什么是mfc140u.dll。这是一个非常重要的动态链接库文件,它是Microsoft Foundation Class Library的一个组件。许多软件和游戏都需要这个文件的支持才…

Appium 全新 2.0 全新跨平台生态,版本特性抢鲜体验!

关于Appium V2 Appium V2 beta版本在2021年发布,从2022年1月1号开始,Appium核心团队不会再维护Appium 1.x版本了,所有近期官方发布的平台驱动(如Android平台的UIAutomator,IOS平台的XCUITest)不再兼容Appi…

Qt多线程实现方式-moveToThread及其注意事项

Qt多线程实现方式-moveToThread及其注意事项 Chapter1 Qt多线程实现方式-moveToThread一、Qt下使用线程主要有两种方法。二、Qt下创建多线程也有两种方法。三、其它问题。 Chapter2 QT多线程接收串口数据1.前言2.功能作用3.软件测试效果4.基本步骤 Chapter3 利用Qt多线程机制实…

面试打底稿⑦ 项目一的第三部分

简历原文 抽查部分 完成路线规划模块选择路线功能,用neo4j这种存储图关系的非关系数据库,实现最短线路规划、最低成本线路规划 设计优化物流信息模块,合理选择数据库、缓存技术,实现数据精简、流量削峰、提高系统可 用性 模拟问答…

Scala第十五章节

Scala第十五章节 1. 递归 2. 案例一: 求阶乘 3. 案例二: 斐波那契数列 4. 案例三: 打印目录文件 scala总目录 文档资料下载

04、EL和JSTL核心技术

目录 1 EL表达式(熟悉) 1.1 基本概念 1.2 主要功能 1.3 访问内置对象的数据 1.3.1访问方式 1.3.2 执行流程 1.4 访问请求参数的数据 1.5 访问Bean对象的属性 1.5.1 访问方式 1.5.2 主要区别 1.6 访问集合中的数据 1.7 常用的内置对象 …

uboot启动流程-涉及lowlevel_init汇编函数

一. uboot启动流程涉及函数 之前文章简单分析了 uboot启动流程的开始,从链接脚本文件 u-boot.lds 中,我们已经知道了入口点是 arch/arm/lib/vectors.S 文件中的 _start函数。 _start函数:调用了 reset 函数,reset 函数内部&…

1、Kafka 安装与简单使用

第 1 章 Kafka 概述 1.1 定义 Kafka传统定义: Kafka是一个分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用于大数据实时处理领域。 Kafka最新定义 : Kafka是 一个开源的 分 布式事件流平台 &#xff08…

《CTFshow-Web入门》10. Web 91~110

Web 入门 索引web91题解总结 web92题解总结 web93题解 web94题解 web95题解 web96题解 web97题解 web98题解 web99题解总结 web100题解 web101题解 web102题解 web103题解 web104题解 web105题解总结 web106题解 web107题解 web108题解 web109题解 web110题解 ctf - web入门 索…

Scala第十四章节

Scala第十四章节 1. 隐式转换和隐式参数介绍 2. 隐式转换 3. 隐式参数 4. 案例: 获取列表元素平均值 scala总目录 文档资料下载

大数据Flink(九十):Lookup Join(维表 Join)

文章目录 Lookup Join(维表 Join) Lookup Join(维表 Join) Lookup Join 定义(支持 Batch\Streaming):Lookup Join 其实就是维表 Join,比如拿离线数仓来说,常常会有用户画像,设备画像等数据,而对应到实时数仓场景中,这种实时获取外部缓存的 Join 就叫做维表 Join。…

10.1 今日任务:select实现服务器并发

#include <myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr, "__%d__:", __LINE__); \perror(msg);\ }while(0)#define PORT 8888 //端口号&#xff0c;范围1024~49151 #define IP "192.168.112.115" //本机IP&#xff0c;ifco…

Qt自定义菜单

Qt开发过程中&#xff0c;弹出菜单时我们一般使用QMenu,但是QMenu都是一条项固定的格式&#xff0c;如查想要自己的设计界面就没法使用默认的Action项了&#xff0c;因此我们得用自定义的QMenu。 本篇介绍使用自定义的QMenu设计出UI。我们使用QWidget QWidgetAction来实现。Q…

Spring注册Bean系列--方法1:@Component

原文网址&#xff1a;Spring注册Bean系列--方法1&#xff1a;Component_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Spring注册Bean的方法&#xff1a;Component。 注册Bean的方法我写了一个系列&#xff0c;见&#xff1a;Spring注册Bean(提供Bean)系列--方法大全_IT利刃出鞘…

前期开发用最内聚环境,最直观简单的方法管理代码

代码稍微一多我们就会思考代码如何去规划和管理&#xff0c;首先想到MVN等管理工具去帮助我们&#xff0c;结果配置了好长时间感觉不是很方便。首先因为没有系统去了解这个工具的使用方法&#xff0c;另外发现IDEA在原本松散的工具之间以插件的形式做了一定的配置&#xff0c;将…

数据分析三剑客之一:Numpy详解及实战

1 NumPy介绍 NumPy 软件包是Python生态系统中数据分析、机器学习和科学计算的主力军。它极大地简化了向量和矩阵的操作处理。Python的一些主要软件包&#xff08;如 scikit-learn、SciPy、pandas 和 tensorflow&#xff09;都以 NumPy 作为其架构的基础部分。除了能对数值数据…