当前位置: 首页 > news >正文

深度学习安装环境笔记

1、输出cuda版本
torch.version.cuda 返回的是 PyTorch 在编译时所使用的 CUDA 版本,而不是运行时实际调用的 CUDA 版本。PyTorch 在运行时实际调用的 CUDA 版本取决于系统上安装的 CUDA 驱动和库。

import torch
from torch.utils.cpp_extension import CUDA_HOME# 输出 预编译时cuda 版本
print(torch.version.cuda)# 输出 PyTorch 版本
print("PyTorch version:", torch.__version__)# 输出 CUDA_HOME 变量,真正使用的版本
print("CUDA_HOME:", CUDA_HOME)

2、查看pytorch和cuda关系:
https://pytorch.org/get-started/previous-versions/

3、显卡、显卡驱动、cuda、cuDNN之间关系:
https://blog.csdn.net/ergevv/article/details/140328687

4、ubuntu安装虚拟环境:

# 添加 PPA(个人软件包档案)
sudo add-apt-repository ppa:deadsnakes/ppa# 更新包列表
sudo apt update# 安装 Python 3.10
sudo apt install python3.10# 安装 pip (可选)
sudo apt install python3.10-distutils
curl -sS https://bootstrap.pypa.io/get-pip.py | sudo python3.10# 创建和管理 Python 虚拟环境所需的工具和库
sudo apt-get install python3.10-dev python3.10-venv
1. sudo apt install python3.10-distutils
这条命令的作用是从官方软件仓库中安装 python3.10-distutils 包。distutils 是一个用来构建和安装 Python 模块的标准工具集。它通常被用来打包和发布 Python 库。在一些较新的 Python 安装中,distutils 可能没有默认安装,而一些工具(包括 pip)在安装过程中可能会依赖于 distutils 中的功能。因此,安装这个包可以确保你的 Python 安装中有这些必要的工具。2. curl -sS https://bootstrap.pypa.io/get-pip.py | sudo python3.10
这条命令实际上是两条命令的组合,使用管道符 | 将它们连接起来。它的工作流程如下:curl -sS https://bootstrap.pypa.io/get-pip.py:这部分命令使用 curl 工具从互联网下载 get-pip.py 脚本。-s 参数让 curl 在下载时不显示进度条等输出信息,而 -S 参数则确保即使开启了 -s 参数,当发生错误时也会显示错误信息。
| sudo python3.10:这部分命令表示将前一部分命令的输出(即下载的 get-pip.py 脚本)作为输入传递给 python3.10 解释器执行。由于命令前面有 sudo,这意味着脚本将以超级用户权限运行,这对于安装全局可用的 Python 包通常是必需的。
整体来说,这条命令的作用是下载并立即运行 get-pip.py 脚本,该脚本会检测当前环境中的 Python 安装,并安装最新版本的 pip(Python 的包管理工具)。这样做可以确保你有一个最新的 pip 版本来管理你的 Python 包。1. python3.10-dev
作用:python3.10-dev 包包含了编译 Python C 扩展模块所需的头文件和静态库。这些文件对于开发和安装使用 C 或 C++ 编写的 Python 扩展模块是必需的。
用途:如果你需要安装某些依赖于 C 扩展的 Python 包,或者你自己编写了需要编译的 C 扩展模块,那么这个包是必需的。
2. python3.10-venv
作用:python3.10-venv 包提供了 venv 模块,该模块用于创建隔离的 Python 虚拟环境。虚拟环境允许你在同一个系统上为不同的项目创建独立的 Python 环境,从而避免包版本冲突等问题。
用途:这个包使得你可以使用 python3.10 -m venv 命令创建新的虚拟环境。虚拟环境中的 Python 解释器和包管理工具(如 pip)都是独立于系统全局环境的。
综合效果
通过安装这两个包,你可以确保:编译支持:你的系统具备编译和安装 C 扩展模块的能力。
虚拟环境支持:你可以创建和管理基于 Python 3.10 的虚拟环境。

5、使用venv创建虚拟环境

# 查找python位置
which python3.10# 使用查到的路径来创建名为splatam的虚拟环境
/usr/bin/python3.10 -m venv splatam# 激活虚拟环境
. splatam/bin/activate# 安装包
pip install -r requirements.txt# 安装本地的库
pip setup.py install

6、使用ubuntu跑深度学习时,cuda正在运行,这时候直接挂机,重启后会报错:UserWarning: CUDA initialization: CUDA unknown error - this may be due to an incorrectly set up environment, e.g. changing env variable CUDA_VISIBLE_DEVICES after program start. Setting the available devices to be zero. (Triggered internally at …/c10/cuda/CUDAFunctions.cpp:109.) return torch._C._cuda_getDeviceCount() > 0

解决方法,挂机前先关掉cuda,或者重启cuda:

sudo apt-get install nvidia-modprobe
sudo rmmod nvidia_uvm
sudo modprobe nvidia_uvm
1. sudo rmmod nvidia_uvm
命令: sudo rmmod nvidia_uvm
功能: 卸载 nvidia_uvm 内核模块。
作用: nvidia_uvm 是 NVIDIA 统一虚拟内存(Unified Virtual Memory, UVM)的内核模块,用于在 CPU 和 GPU 之间共享内存。卸载这个模块可以清除当前的 UVM 状态,有助于解决一些 CUDA 初始化问题。
2. sudo modprobe nvidia_uvm
命令: sudo modprobe nvidia_uvm
功能: 加载 nvidia_uvm 内核模块。
作用: 重新加载 nvidia_uvm 模块,确保 CUDA 环境能够正确初始化 UVM 功能。

7、查询显卡驱动:

nvidia-smi

NVIDIA-SMI 535.183.01 Driver Version: 535.183.01 CUDA Version: 12.2
注意这里的CUDA Version不是指你安装的CUDA版本,而是表明,这个显卡驱动最高可以支持CUDA版本为12.2。

8、实时查看显卡使用率

watch -n 1 nvidia-smi

这个命令会每秒刷新一次nvidia-smi输出,从而提供近乎实时的更新。-n 1 参数表示每隔1秒刷新一次显示。如果想要不同的刷新间隔,可以调整这个数字。

9、vscode调试输入参数:

{"version": "0.2.0","configurations": [{"name": "Python 调试程序: 当前文件","type": "debugpy","request": "launch","program": "${file}","console": "integratedTerminal","args": ["configs/replica/splatam.py"],"env": {"CUDA_VISIBLE_DEVICES": "0"}}]
}
http://www.lryc.cn/news/498985.html

相关文章:

  • 使用android studio写一个Android的远程通信软件(APP),有通讯的发送和接收消息界面
  • 学习Python的笔记14--迭代器和生成器
  • 车机端同步outlook日历
  • 教学案例:k相同的一次函数的图像关系
  • EmoAva:首个大规模、高质量的文本到3D表情映射数据集。
  • Elasticsearch vs 向量数据库:寻找最佳混合检索方案
  • 【Flink-scala】DataStream编程模型之水位线
  • Python导入moviepy找不到editor 视频没有声音设置audio_codec参数
  • rsync 是一个非常强大的 Linux 工具,常用于文件和目录的同步、备份和传输。
  • 触发器案例详解
  • jwt 与 sessionid 的区别及应用场景
  • tomcat和nginx
  • 服务器带宽与数据安全的重要性与作用
  • JSON数据处理
  • FSWIND脉动风-风载时程生成器软件原理
  • 搭建高可用负载均衡系统:Nginx 与云服务的最佳实践
  • 对比git命令与TortoiseGit工具,理解git解决冲突的过程
  • guava缓存的get方法的回调函数讲解一下
  • React基础知识四 Hooks
  • 线性代数中的谱分解
  • Redis 数据结结构(一)—字符串、哈希表、列表
  • 【Python】用Python和Paramiko实现远程服务器自动化管理
  • PDF处理的创新工具:福昕低代码平台尝鲜
  • openstack创建浮动IP全过程
  • nginx漏洞修复
  • Jackson - 序列化时更改字段名称
  • 策略模式实战 - 猜拳游戏
  • AWS ECS Task 添加 Prometheus 监控采集配置详细指南
  • 5. 一分钟读懂“工厂方法模式”
  • 基于 AutoFlow 快速搭建基于 TiDB 向量搜索的本地知识库问答机器人