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版本下载(你需要的与TensorFlow匹配的版本),如下图,选择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(找到与你的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运行哦):
相关文章:

Ubuntu配置深度学习环境(TensorFlow和PyTorch)
文章目录 一、CUDA安装1.1 安装显卡驱动1.2 CUDA安装1.3 安装cuDNN 二、Anaconda安装三、安装TensorFlow和pyTorch3.1 安装pyTorch3.2 安装TensorFlow2 四、安装pyCharm4.1 pyCharm的安装4.2 关联anaconda的Python解释器 五、VScode配置anaconda的Python虚拟环境 前言ÿ…...

【产品经理】国内企业服务SAAS平台的生存与发展
SaaS在国外发展的比较成熟,甚至已经成为了主流,但在国内这几年才掀起热潮;企业服务SaaS平台在少部分行业发展较快,大部分行业在国内还处于起步、探索阶段;SaaS将如何再国内生存和发展? 在企业服务行业做了五…...

【vue 首屏加载优化】
Vue 首屏加载优化指的是通过一系列的技术手段,尽可能地缩短首屏(即页面中可见的部分)的加载时间,提高用户体验。 以下是一些常见的 Vue 首屏加载优化技巧: 使用 Vue SSR(服务端渲染)࿱…...

docker--redis容器部署及与SpringBoot整合-I
文章目录 1. 容器化部署docker2. 如何与SpringBoot集成2.1. 引入依赖2.2. 添加配置信息2.3. 测试类2.4. 内置的Spring Beansredis 主流客户端比较redissonlettucejedis参考1. 容器化部署docker 拉取镜像创建数据目录data 及 配置目录conf创建配置文件redis.conf启动redis容器进…...

力扣 -- 518. 零钱兑换 II(完全背包问题)
解题步骤: 参考代码: 未优化代码: class Solution { public:int change(int amount, vector<int>& coins) {int ncoins.size();//多开一行,多开一列vector<vector<int>> dp(n1,vector<int>(amount1…...

一文搞懂UART通信协议
目录 1、UART简介 2、UART特性 3、UART协议帧 3.1、起始位 3.2、数据位 3.3、奇偶校验位 3.4、停止位 4、UART通信步骤 1、UART简介 UART(Universal Asynchronous Receiver/Transmitter,通用异步收发器)是一种双向、串行、异步的通信…...

【算法|动态规划No.7】leetcode300. 最长递增子序列
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…...

LeetCode 54 螺旋矩阵
先贴代码 class Solution {public int[][] generateMatrix(int n) {int left 0;int right n-1;int up 0;int down n-1;int[][] result new int[n][n];int number 0;while(left < right && up < down) {for(int ileft;i<right;i) {number;result[up]…...

OpenCV 概念、整体架构、各模块主要功能
文章目录 1. OpenCV 概念2 OpenCV主要模块3 各模块 详细介绍3.1 calib3d 标定3.2 core 核心功能模块3.4 features2d 二维特征3.5 flann 快速近似近邻算法库3.7 highgui 高级图形用户界面3.9 imgproc 图像处理模块3.10 ml 机器学习模块3.11 objdetect 目标检测模块3.12 photo 数…...

组合数与莫队——组合数前缀和
用莫队求组合数是一种常见套路 莫队求 S ( n , m ) ∑ i 0 m ( n i ) S(n,m)\sum_{i0}^m\binom n i S(n,m)∑i0m(in) S ( n , m 1 ) S(n,m1) S(n,m1) 直接做个差,然后就相当于加上 ( n i 1 ) \binom n {i1} (i1n) 求 S ( n 1 , m ) S(n1,m) S(n1,m)…...

stm32之雨滴传感器使用记录
一、简介 雨滴传感器、烟雾传感器(MQ2)、轨迹传感器、干黄管等的原理都类似,都是将检测到的信号通过LM393进行处理之后再输出,可以输出数字信号DO(0和1)和模拟信号A0。 雨滴传感器在正常情况下是AO输出的是…...

华硕平板k013me176cx线刷方法
1.下载adb刷机工具, 或者刷机精灵 2.下载刷机rom包 华硕asus k013 me176cx rom固件刷机包-CSDN博客 3.平板进入刷机界面 进入方法参考: ASUS (k013) ME176CX不进入系统恢复出厂设置的方法-CSDN博客 4.解压ME176C-CN-3_2_23_182.zip,把UL-K013-CN-3.2.…...

C#停车场管理系统
目录 一、绪论1.1内容简介及意义1.2开发工具及技术介绍 二、总体设计2.1系统总体架构2.2登录模块总体设计2.3主界面模块总体设计2.4停车证管理模块总体设计2.5停车位管理模块总体设计2.6员工管理模块总体设计2.7其他模块总体设计 三、详细设计3.1登录模块设计3.2主界面模块设计…...

C++:stl:stack、queue、priority_queue介绍及模拟实现和容量适配器deque介绍
本文主要介绍c中stl的栈、队列和优先级队列并对其模拟实现,对deque进行一定介绍并在栈和队列的模拟实现中使用。 目录 一、stack的介绍和使用 1.stack的介绍 2.stack的使用 3.stack的模拟实现 二、queue的介绍和使用 1.queue的介绍 2.queue的使用 3.queue的…...

【Java】面向对象程序设计 课程笔记 面向对象基础
🚀Write In Front🚀 📝个人主页:令夏二十三 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 📣系列专栏:Java 💬总结:希望你看完之后,能对你有…...

Hive【Hive(五)函数-高级聚合函数、炸裂函数】
高级聚合函数 多进一出(多行输入,一个输出) 普通聚合函数:count、sum ... 1)collect_list():收集并形成 list 集合,结果不去重 select sex,collect_list(job) from e…...

zabbix(二)
文章目录 1. zabbix自定义监控项【配置】2. zabbix自定义监控项【传参】3. zabbix自定义触发器4. zabbix邮件告警4. zabbix企业微信告警 1. zabbix自定义监控项【配置】 目前有主机zabbix-server: 10.0.0.10 zabbix-slave: 10.0.0.11 zabbix监控的内容,想平滑转移到…...

容器安全检测工具KubeHound使用
前言 Kubernetes集群攻击路径AES工具 安装 下载kubehound git clone https://github.com/DataDog/KubeHound.git 安装docker compose插件 Docker compose插件安装_信安成长日记的博客-CSDN博客 启动kubehound后端服务 即要开大内存,不然db起不来,…...
机器学习笔记 - 基于强化学习的贪吃蛇玩游戏
一、关于深度强化学习 如果不了解深度强化学习的一般流程的可以考虑看一下下面的链接。因为这里的示例因为在PyTorch 之上实现深度强化学习算法。 机器学习笔记 - Deep Q-Learning算法概览深度Q学习是一种强化学习算法,它使用深度神经网络来逼近Q函数,用于确定在给定状态下采…...

C++_pen_类
类的成员函数 构造函数析构函数普通成员函数 构造函数与析构函数 #include <stdio.h> class STU{ public:STU(){printf("STU\n");}STU(int id){printf("STU(int id)\n");}~STU(){printf("STU Bye!!!\n");} };int main(int argc, char c…...

MySQL 多表关联查询优化实践和原理解析
目录 一、前言二、表数据准备三、表关联查询原理和两种算法3.1、研究关联查询算法必备知识点3.2、嵌套循环连接 Nested-Loop Join(NLJ) 算法3.3、基于块的嵌套循环连接 Block Nested-Loop Join(BNL)算法3.4、被驱动表的关联字段没索引为什么要选择使用 BNL 算法而不使用 Nested…...

LeNet网络复现
文章目录 1. LeNet历史背景1.1 早期神经网络的挑战1.2 LeNet的诞生背景 2. LeNet详细结构2.1 总览2.2 卷积层与其特点2.3 子采样层(池化层)2.4 全连接层2.5 输出层及激活函数 3. LeNet实战复现3.1 模型搭建model.py3.2 训练模型train.py3.3 测试模型test…...

Oracle 慢查询排查步骤
目录 1. Oracle 慢查询排查步骤1.1. 前言1.2. 排查步骤1.2.1. 查询慢查询日志1.2.2. Oracle 查询 SQL 语句执行的耗时1.2.3. 定位系统里面哪些 SQL 脚本存在 TABLE ACCESS FULL (扫全表) 行为1.2.4. 查看索引情况1.2.5. 查看锁的竞争情况1.2.6. 其他锁语句 1.3. 慢查询优化1.3.…...

互联网Java工程师面试题·MyBatis 篇·第二弹
目录 16、Xml 映射文件中,除了常见的 select|insert|updae|delete标签之外,还有哪些标签? 17、Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重复? 18、为什么说 Mybatis 是半自动 ORM 映射…...

Linux 下如何调试代码
debug 和 release 在Linux下的默认模式是什么? 是release模式 那你怎么证明他就是release版本? 我们知道如果一个程序可以被调试,那么它一定是debug版本,如果它是release版本,它是没法被调试的,所以说我们可以来调试一…...

腾讯云服务器简介和使用流程
腾讯云服务器在云服务器CVM或轻量应用服务器页面自定义购买价格比较贵,但是自定义购买云服务器CPU内存带宽配置选择范围广,活动上购买只能选择固定的活动机,选择范围窄,但是云服务器价格便宜比较省钱。腾讯云服务器网来详细说下腾…...

python 二分查找
1.二分查找首先被查找的序列是一个有序的。 2.明确序列的左右边界 3.找出序列中间的元素,判断如果是要查找的元素,返回元素 4.如果中间元素,大于或者小于查找的元素,那么改变左右边间,直到中间的数等于查找的元素。…...

通过async方式在浏览器中调用web worker
通过async方式在浏览器中调用web worker 近年来,网络应用程序变得越来越复杂,增加了越来越多的功能。因此,性能和响应性已成为 Web 开发人员关注的重点。解决这个问题的一个办法是使用web worker。 web worker简介 web worker是一个 javas…...

FPGA project : TFT_LCD
实验目标: 驱动TFT_LCD显示十色彩条。 重点掌握的知识: 1,液晶显示器,简称LCD(Liquid Crystal Display),相对于上一代CRT显示器(阴极射线管显示器),LCD显示器具有功耗低、体积小、承载的信息量大及不伤眼…...

2023年-华为机试题库B卷(Python)【满分】
华为机试题库B卷 已于5月10号 更新为2023 B卷 (2023-10-04 更新本文) 华为机试有三道题目,前两道属于简单或中等题,分值为100分,第三道为中等或困难题,分值为200分。总分为 400 分,150分钟考试…...