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

news2024/11/25 4:34:30

文章目录

  • 一、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安装(可能需要科学上网):
在这里插入图片描述
测试是否能够使用:

ipython

import torch
torch.cuda.is_availbale()

3.2 安装TensorFlow2

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

pip 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.coloradmin.cn/o/1053852.html

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

相关文章

使用sqlmap的 ua注入

文章目录 1.使用sqlmap自带UA头的检测2.使用sqlmap随机提供的UA头3.使用自己写的UA头4.调整level检测 测试环境:bWAPP SQL Injection - Stored (User-Agent) 1.使用sqlmap自带UA头的检测 python sqlmap.py -u http://127.0.0.1:9004/sqli_17.php --cookie“BEEFHOO…

C语言 —— 函数

目录 1. 函数是什么 2. C语言中函数的分类 2.1 库函数 2.2 自定义函数 3. 函数的参数 3.1 实际参数(实参) 3.2 形式参数(形参) 4. 函数的调用 4.1 传值调用 4.2 传址调用 5. 函数的嵌套调用和链式访问 5.1 嵌套调用 5.2 链式访问 6. 函数的声明和定义 6.1函数声明…

GEO生信数据挖掘(四)数据清洗(离群值处理、低表达基因、归一化、log2处理)

检索到目标数据集后,开始数据挖掘,本文以阿尔兹海默症数据集GSE1297为例 目录 离群值处理 删除 低表达基因 函数归一化,矫正差异 数据标准化—log2处理 完整代码 上节围绕着探针ID和基因名称做了一些清洗工作,还做了重复值检查…

Elasticsearch基础篇(三):Elasticsearch7.x的集群部署

Elasticsearch的集群部署 1. Elasticsearch集群架构主节点数据节点客户端节点分片节点间通信集群状态 2. Elasticsearch集群部署2.1 系统配置修改2.1.1 修改文件句柄数和线程数2.1.2 修改虚拟内存2.1.3 关闭交换空间(Swap) 2.2 下载es数据库并上传到服务…

企业部署,springboot+vue+vue,Linux上部署mysql与redis,docker中部署nginx,jenkins。完整详细。

企业项目部署全流程笔记 前言 涉及:Linux服务器,docker,Jenkins,nginx,springoot,vue,mysql,redis,git, docker生成容器类型:MySql&#xff0c…

5G消息发展的前景与挑战

随着5G技术的快速发展和普及,5G消息正逐渐成为全球通信领域的新焦点。 随着5G技术的快速发展和普及,5G消息正逐渐成为全球通信领域的新焦点。 5G消息发展呈现规模化、产业化趋势 自2020年4月国内三大运营商联合发布5G消息白皮书以来,已经过…

Ubuntu20.04.1编译qt6.5.3版mysql驱动

下载qtbase6.5.3源码,将plugin中sqldrivers源码拷至于项目工程中,使用qtcreator打开文件 1、下载mysql开发库 sudo apt-get update sudo apt-get install build-essential libmysqlclient-dev 2、在msyql子目录中CMakeLists.txt第一行添加头文件、引…

面试必考精华版Leetcode236. 二叉树的最近公共祖先

题目: 代码(首刷看解析 10.1): class Solution { public:TreeNode* ansnullptr;bool FindSon(TreeNode* root,TreeNode* p,TreeNode* q){if(root nullptr) return false;bool lson FindSon(root->left,p,q);bool rson FindSon(root-&…

力扣 -- 712. 两个字符串的最小ASCII删除和

解题过程: 参考代码: class Solution { public:int minimumDeleteSum(string s1, string s2) {int ms1.size();int ns2.size();//求两个字符串的总ASCII和int sum0;for(const auto& e:s1){sume;}for(const auto& e:s2){sume;}//多开一行&#x…

数据结构与算法-(6)---栈的应用-(2)进制转换

🌈write in front🌈 🧸大家好,我是Aileen🧸.希望你看完之后,能对你有所帮助,不足请指正!共同学习交流. 🆔本文由Aileen_0v0🧸 原创 CSDN首发🐒 如…

基于STM32设计的智能化钻杆系统(华为云IOT)

一、项目引言 在现代石油、天然气等资源勘探和开采过程中,钻井是一项关键的工艺。为了提高钻井作业的准确性和效率,我们设计了一种基于STM32的智能化钻杆系统。该系统利用先进的控制和通信技术,实现了远程控制管子的转动和移动角度,并通过管子设备端的OLED显示屏显示接收到…

Docker从认识到实践再到底层原理(八)|Docker网络

前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…

WiFi网络分析工具Airtool for Mac

Airtool是一款Mac平台上的WiFi网络分析工具,它可以帮助用户监测、分析和管理无线网络。 以下是Airtool的一些主要功能和特点: 实时监测:Airtool可以实时监测当前Mac设备所连接的WiFi网络,包括网络速度、信号强度、连接状态等。信…

Linux CentOS7 vim重复行

在用vim编辑处理文件时,会有重复行。有的是情境需要,有的可能是误操作而形成。对于正常形成的重复行,我们不作讨论,我们仅讨论什么情况下会出现重复行,如何避免,如何处理。 在文件中的单行或多个连续空白行…

Docker从认识到实践再到底层原理(九)|Docker Compose 容器编排

前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…

每日一练-Q1-大数加法-20231001

目录 1.题目描述 2.输入描述 3.示例提示 4.问题分析 5.通过代码 1.题目描述 大数一直是一个c语言的一个难题。 现在我们需要你手动模拟出大数加法过程。 请你给出两个大整数加法结果。 2.输入描述 第一行输入整数n&#xff0c;第二行输入整数m。 (1<number<1e100)…

Leetcode 224. 基本计算器

文章目录 题目代码&#xff08;10.1 首刷看解析&#xff09; 题目 Leetcode 224. 基本计算器 代码&#xff08;10.1 首刷看解析&#xff09; class Solution { public:int calculate(string s) {stack<int> sk; // 存储正负号sk.push(1);int sign 1;int res 0;int i…

优维低代码实践:应用级配置

优维低代码技术专栏&#xff0c;是一个全新的、技术为主的专栏&#xff0c;由优维技术委员会成员执笔&#xff0c;基于优维7年低代码技术研发及运维成果&#xff0c;主要介绍低代码相关的技术原理及架构逻辑&#xff0c;目的是给广大运维人提供一个技术交流与学习的平台。 优维…

【Vue】Vuex详解,一文读懂并使用Vuex

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《ELement》。&#x1f3af;&#x1f3af; &#x1…

一图带你了解封装与分用

一、前缀知识 IP地址&#xff1a;用于定位主机的网络地址。 端口号&#xff1a;区分主机上不同的应用程序。 协议&#xff1a;描述了网络通信传输的数据的含义。 二、TCP/IP五层网络模型 物理层&#xff1a;描述了网络通信中基础设施的规范。 数据链路层&#xff1a;相邻节点之…