Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件

简介: 这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。

1.安装显卡Nvidia

# 删除软件及其配置文件apt-get --purge remove <package>
# 删除没用的依赖包
apt-get autoremove <package>
# 此时dpkg的列表中有“rc”状态的软件包,可以执行如下命令做最后清理:
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P
#输入下条命令,卸载电脑驱动
sudo apt-get purge nvidia*
#输入下条命令,把显卡驱动加入ppa(个人软件包文档,仅支持Ubuntu),类似于应用商店
sudo add-apt-repository ppa:graphics-drivers
sudo apt-get update
#识别显卡模型和推荐的驱动程序
ubuntu-drivers devices
#输入以下命令
sudo apt install nvidia-390
#一旦完成,即可重新启动系统
nvidia-smi

2.cuda和cudnn安装

cuda
下载网址:

sudo chmod a+x cuda_10.0.130_410.48_linux.run
安装
sudo ./cuda_10.0.130_410.48_linux.run --no-opengl-libs

安装过程选择在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
安装完成,重启机器

配置环境变量:sudo gedit ~/.bashrc

同时在文件中添加下面的内容:

export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

更新源文件,并且检查CUDA是否安装成功:

source ~/.bashrc 

nvcc -V

cudnn

https://developer.nvidia.com/rdp/cudnn-archive
安装CUDNN7.4.2,这里安装顺序一定要如下所示:

sudo dpkg -i libcudnn7_7.5.0.56-1+cuda10.0_amd64.deb

sudo dpkg -i libcudnn7-dev_7.5.0.56-1+cuda10.0_amd64.deb 

sudo dpkg -i libcudnn7-doc_7.5.0.56-1+cuda10.0_amd64.deb

把此文件复制到/usr/local/cuda/include文件夹下面,并修改权限:

sudo cp /usr/include/cudnn.h /usr/local/cuda/include 

sudo chmod a+x /usr/local/cuda/include/cudnn.h

检测是否安装成功:cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

3.安装Anaconda

到这里下载对应的版本
https://repo.continuum.io/archive/
下载好了之后打开终端执行下面操作

sudo bash Anaconda3-5.3.1-Linux-x86_64.sh
#除了最后一个输入no(Microsoft VSCode)其它的一路默认或者输入yes
# 将anaconda的bin目录加入PATH,根据版本不同,也可能是~/anaconda3/bin
echo 'export PATH="/home/lqs/anaconda3/bin:$PATH"' >> ~/.bashrc
# 更新bashrc以立即生效
source ~/.bashrc
#查看conda版本
conda -V
#查看python版本
python

卸载看这里

4.安装pytorch

方法1:
到这里下载对应的pytorch版本
https://download.pytorch.org/whl/torch_stable.html
我cuda11.2下载的是

torch-1.8.1+cu111-cp37-cp37m-linux_x86_64.whl
torchvision-0.9.1+cu111-cp37-cp37m-linux_x86_64.whl
torchaudio-0.8.1-cp37-cp37m-linux_x86_64.whl

然后打开终端依次执行

pip install torch-1.8.1+cu111-cp37-cp37m-linux_x86_64.whl
pip install torchvision-0.9.1+cu111-cp37-cp37m-linux_x86_64.whl
pip install torchaudio-0.8.1-cp37-cp37m-linux_x86_64.whl

检验安装成功与否

python
import torch
torch.__version__
torch.cuda.is_available()
#显示为True成功
x=torch.ones(5,3)
x.cuda()

方法2:
另一种方式安装

方法3:
通过官方网站安装

pip3 install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

5.安装Tensorflow

  • 通过tensorflow查看GPU信息
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

在这里插入图片描述

  • 若你安装的tensorflow是2.4.1
pip install --ignore-installed --upgrade tensorflow-gpu
  • 中间缺什么安装什么

  • 验证

import tensorflow as tf
import timeit

with tf.device('/cpu:0'):
    cpu_a = tf.random.normal([10000, 1000])
    cpu_b = tf.random.normal([1000, 2000])
    print(cpu_a.device, cpu_b.device)

with tf.device('/gpu:0'):
    gpu_a = tf.random.normal([10000, 1000])
    gpu_b = tf.random.normal([1000, 2000])
    print(gpu_a.device, gpu_b.device)

def cpu_run():
    with tf.device('/cpu:0'):
        c = tf.matmul(cpu_a, cpu_b)
    return c

def gpu_run():
    with tf.device('/gpu:0'):
        c = tf.matmul(gpu_a, gpu_b)
    return c

# warm up    这里就当是先给gpu热热身了
cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print('warmup:', cpu_time, gpu_time)

cpu_time = timeit.timeit(cpu_run, number=10)
gpu_time = timeit.timeit(gpu_run, number=10)
print('run time:', cpu_time, gpu_time)

6.安装Opencv

下载链接
https://pypi.tuna.tsinghua.edu.cn/simple/opencv-python/

python -m pip install opencv-python  -i https://pypi.tuna.tsinghua.edu.cn/simple
# 安装不成功
# 从上面链接下载opencv_python-4.4.0.46-cp37-cp37m-manylinux2014_x86_64.whl
pip install opencv_python-4.4.0.46-cp37-cp37m-manylinux2014_x86_64.whl

7. FFMPEG

https://blog.csdn.net/weixin_43412762/article/details/135006886

8.卸载一些不必要的预装软件

卸载libreoffices

sudo apt-get remove libreoffice-common

导航栏放在底部

gsettings set com.canonical.Unity.Launcher launcher-position Bottom
相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
2月前
|
Linux 开发工具 Android开发
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
ijkplayer是由Bilibili基于FFmpeg3.4研发并开源的播放器,适用于Android和iOS,支持本地视频及网络流媒体播放。本文详细介绍如何在新版Android Studio中导入并使用ijkplayer库,包括Gradle版本及配置更新、导入编译好的so文件以及添加直播链接播放代码等步骤,帮助开发者顺利进行App调试与开发。更多FFmpeg开发知识可参考《FFmpeg开发实战:从零基础到短视频上线》。
188 2
FFmpeg开发笔记(六十)使用国产的ijkplayer播放器观看网络视频
|
2月前
|
编解码 语音技术 内存技术
FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频
《FFmpeg开发实战:从零基础到短视频上线》一书中的“5.1.2 把音频流保存为PCM文件”章节介绍了将媒体文件中的音频流转换为原始PCM音频的方法。示例代码直接保存解码后的PCM数据,保留了原始音频的采样频率、声道数量和采样位数。但在实际应用中,有时需要特定规格的PCM音频。例如,某些语音识别引擎仅接受16位PCM数据,而标准MP3音频通常采用32位采样,因此需将32位MP3音频转换为16位PCM音频。
78 0
FFmpeg开发笔记(五十八)把32位采样的MP3转换为16位的PCM音频
|
2月前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
203 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
|
2月前
|
Linux API 开发工具
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
ijkplayer是由B站研发的移动端播放器,基于FFmpeg 3.4,支持Android和iOS。其源码托管于GitHub,截至2024年9月15日,获得了3.24万星标和0.81万分支,尽管已停止更新6年。本文档介绍了如何在Linux环境下编译ijkplayer的so库,以便在较新的开发环境中使用。首先需安装编译工具并调整/tmp分区大小,接着下载并安装Android SDK和NDK,最后下载ijkplayer源码并编译。详细步骤包括环境准备、工具安装及库编译等。更多FFmpeg开发知识可参考相关书籍。
110 0
FFmpeg开发笔记(五十九)Linux编译ijkplayer的Android平台so库
|
2月前
|
缓存 监控 计算机视觉
视频监控笔记(三):opencv结合ffmpeg获取rtsp摄像头相关信息
本文介绍了如何使用OpenCV结合FFmpeg获取RTSP摄像头信息,包括网络架构、视频监控系统组成、以及如何读取和显示网络摄像头视频流。
67 1
|
2月前
|
网络协议 应用服务中间件 nginx
FFmpeg错误笔记(一):nginx-rtmp-module推流出现 Server error: Already publishing
这篇文章讨论了在使用nginx-rtmp-module进行RTMP推流时遇到的“Server error: Already publishing”错误,分析了错误原因,并提供了详细的解决办法,包括修改nginx配置文件和终止异常的TCP连接。
206 0
FFmpeg错误笔记(一):nginx-rtmp-module推流出现 Server error: Already publishing
|
2月前
|
算法 PyTorch 算法框架/工具
Pytorch学习笔记(九):Pytorch模型的FLOPs、模型参数量等信息输出(torchstat、thop、ptflops、torchsummary)
本文介绍了如何使用torchstat、thop、ptflops和torchsummary等工具来计算Pytorch模型的FLOPs、模型参数量等信息。
358 2
|
18天前
|
机器学习/深度学习 人工智能 PyTorch
Transformer模型变长序列优化:解析PyTorch上的FlashAttention2与xFormers
本文探讨了Transformer模型中变长输入序列的优化策略,旨在解决深度学习中常见的计算效率问题。文章首先介绍了批处理变长输入的技术挑战,特别是填充方法导致的资源浪费。随后,提出了多种优化技术,包括动态填充、PyTorch NestedTensors、FlashAttention2和XFormers的memory_efficient_attention。这些技术通过减少冗余计算、优化内存管理和改进计算模式,显著提升了模型的性能。实验结果显示,使用FlashAttention2和无填充策略的组合可以将步骤时间减少至323毫秒,相比未优化版本提升了约2.5倍。
35 3
Transformer模型变长序列优化:解析PyTorch上的FlashAttention2与xFormers
|
2月前
|
机器学习/深度学习 自然语言处理 监控
利用 PyTorch Lightning 搭建一个文本分类模型
利用 PyTorch Lightning 搭建一个文本分类模型
69 8
利用 PyTorch Lightning 搭建一个文本分类模型
|
2月前
|
机器学习/深度学习 自然语言处理 数据建模
三种Transformer模型中的注意力机制介绍及Pytorch实现:从自注意力到因果自注意力
本文深入探讨了Transformer模型中的三种关键注意力机制:自注意力、交叉注意力和因果自注意力,这些机制是GPT-4、Llama等大型语言模型的核心。文章不仅讲解了理论概念,还通过Python和PyTorch从零开始实现这些机制,帮助读者深入理解其内部工作原理。自注意力机制通过整合上下文信息增强了输入嵌入,多头注意力则通过多个并行的注意力头捕捉不同类型的依赖关系。交叉注意力则允许模型在两个不同输入序列间传递信息,适用于机器翻译和图像描述等任务。因果自注意力确保模型在生成文本时仅考虑先前的上下文,适用于解码器风格的模型。通过本文的详细解析和代码实现,读者可以全面掌握这些机制的应用潜力。
116 3
三种Transformer模型中的注意力机制介绍及Pytorch实现:从自注意力到因果自注意力
下一篇
DataWorks