深度学习安装环境笔记
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"}}]
}
相关文章:
深度学习安装环境笔记
1、输出cuda版本 torch.version.cuda 返回的是 PyTorch 在编译时所使用的 CUDA 版本,而不是运行时实际调用的 CUDA 版本。PyTorch 在运行时实际调用的 CUDA 版本取决于系统上安装的 CUDA 驱动和库。 import torch from torch.utils.cpp_extension import CUDA_HOME…...

使用android studio写一个Android的远程通信软件(APP),有通讯的发送和接收消息界面
以下是使用 Android Studio 基于 Java 语言编写一个简单的 Android APP 实现远程通信(这里以 TCP 通信为例)的代码示例,包含基本的通信界面以及发送和接收消息功能。 1. 创建项目 打开 Android Studio,新建一个 Empty Activity …...
学习Python的笔记14--迭代器和生成器
1.迭代器(Iterator) 概念: 迭代意味着重复多次,就像循环一样。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。 迭代器只能往前不会后退。 1.iter…...

车机端同步outlook日历
最近在开发一个车机上的日历助手,其中一个需求就是要实现手机端日历和车机端日历数据的同步。然而这种需求似乎没办法实现,毕竟手机日历是手机厂商自己带的系统应用,根本不能和车机端实现数据同步的。 那么只能去其他公共的平台寻求一些机会&…...

教学案例:k相同的一次函数的图像关系
【题目】 请在同一个平面直角坐标系中画出一次函数y2x, y2x4的图象,并观察图象,你发现这两个图形有什么位置关系?为什么? 【答案】 图象是相互平行的两条直线 【解析】 一、教学活动形式 这里设计的教学活动形式是“画图 →…...

EmoAva:首个大规模、高质量的文本到3D表情映射数据集。
2024-12-03,由哈尔滨工业大学(深圳)的计算机科学系联合澳门大学、新加坡南洋理工大学等机构创建了EmoAva数据集,这是首个大规模、高质量的文本到3D表情映射数据集,对于推动情感丰富的3D头像生成技术的发展具有重要意义…...

Elasticsearch vs 向量数据库:寻找最佳混合检索方案
图片来自Shutterstock上的Bakhtiar Zein 多年来,以Elasticsearch为代表的基于全文检索的搜索方案,一直是搜索和推荐引擎等信息检索系统的默认选择。但传统的全文搜索只能提供基于关键字匹配的精确结果,例如找到包含特殊名词“Python3.9”的文…...

【Flink-scala】DataStream编程模型之水位线
DataStream API编程模型 1.【Flink-Scala】DataStream编程模型之 数据源、数据转换、数据输出 2.【Flink-scala】DataStream编程模型之 窗口的划分-时间概念-窗口计算程序 3.【Flink-scala】DataStream编程模型之 窗口计算-触发器-驱逐器 文章目录 DataStream API编程模型前言…...
Python导入moviepy找不到editor 视频没有声音设置audio_codec参数
moviepy合成视频出错: 问题一:导入moviepy.editor找不到editor,No module named moviepy.editor问题二:合成的视频没有声音 问题一:导入moviepy.editor找不到editor,No module named moviepy.editor from …...
rsync 是一个非常强大的 Linux 工具,常用于文件和目录的同步、备份和传输。
rsync 是一个非常强大的 Linux 工具,常用于文件和目录的同步、备份和传输。它可以高效地同步本地和远程系统上的文件和目录,并且支持增量传输,仅同步发生变化的部分。rsync 支持压缩传输、删除多余文件、排除特定文件等多种功能,是日常运维、备份和迁移数据的重要工具。 一…...
触发器案例详解
目录 一、定义二、类型三、功能与用途四、创建与调用DML触发器格式示例DDL触发器格式示例登录触发器格式示例五、案例案例一:DML触发器 - 记录更新操作的触发器案例二:DML触发器 - 防止非法工资更新的触发器案例三:DDL触发器 - 记录表结构更改的触发器案例四:DDL触发器 - 防…...
jwt 与 sessionid 的区别及应用场景
在现代 Web 应用中,JWT(JSON Web Token)和SessionID是两种常用的用户认证和状态管理机制。本文从两者的原理、区别、优缺点以及适用场景展开分析,结合常见问题提出了最佳实践建议,帮助开发者更好地选择和使用。 JWT与S…...
tomcat和nginx
Tomcat 和 Nginx 都可以部署 Web 应用,但它们的核心功能和适用场景不同,因此在 2024 年生产环境及未来,是否使用 Tomcat 取决于需求和技术架构的特点。 1. Tomcat 的特点与适用场景 Tomcat 是 Java Servlet 容器,主要用来运行基于…...
服务器带宽与数据安全的重要性与作用
服务器带宽指的是服务器与外部网络通信的能力,即服务器发送和接收数据的速率。带宽越大,服务器在同一时间内能够处理的数据量就越多,数据传输的速度和稳定性也就越高。在数字化时代,企业对于数据的依赖程度日益加深,无…...
JSON数据处理
1. JSON注解 Data NoArgsConstructor AllArgsConstructor JsonIgnoreProperties(ignoreUnknowntrue) JSON注解: JsonIgnoreProperties(ignoreUnknowntrue) Hutool 日期格式化: DatePattern DateTimeFormat(pattern "yyyy-MM-dd HH:mm:ss")…...

FSWIND脉动风-风载时程生成器软件原理
大量风的实测资料表明,在风的时程曲线中,瞬时风速包含两个部分:一部分是自振周期一般在 10 分钟以上的平均风,另一部分是周期一般只有几秒左右的脉动风。平均风由于其周期一般比结构的自振周期大,因而考虑其作用性质相…...

搭建高可用负载均衡系统:Nginx 与云服务的最佳实践
搭建高可用负载均衡系统:Nginx 与云服务的最佳实践 引言 在项目开发过程中,我们通常在开发和测试阶段采用单机架构进行开发和测试。这是因为在这个阶段,系统的主要目的是功能实现和验证,单机架构足以满足开发人员的日常需求&…...

对比git命令与TortoiseGit工具,理解git解决冲突的过程
1 引言 此前用TortoiseSvn习惯了,所以,转到git时也同时选择了TortoiseGit工具。 同时,对比了可视化工具和git命令的操作,来深入理解git解决冲突的方式。 2 使用远程仓库替代本地仓库的内容 2.1 TortoiseGit做法 using “MERGE_…...
guava缓存的get方法的回调函数讲解一下
CacheBuilder.newBuilder()//设置缓存初始大小,应该合理设置,后续会扩容.initialCapacity(10)//最大值.maximumSize(100)//并发数设置.concurrencyLevel(5)//缓存过期时间,写入后10分钟过期.expireAfterWrite(600,TimeUnit.SECONDS)//统计缓存…...

React基础知识四 Hooks
什么是hooks? (coderwhy) hooks是react 16.8(2019年)出的新特性。 react有两种形式来创建组件——类式和函数式。在hooks之前类式组件就是react最主流的编程方式。 这个时候,函数式组件是非常鸡肋的,几乎没什么用。因…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...

Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
WEB3全栈开发——面试专业技能点P7前端与链上集成
一、Next.js技术栈 ✅ 概念介绍 Next.js 是一个基于 React 的 服务端渲染(SSR)与静态网站生成(SSG) 框架,由 Vercel 开发。它简化了构建生产级 React 应用的过程,并内置了很多特性: ✅ 文件系…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...
怎么开发一个网络协议模块(C语言框架)之(六) ——通用对象池总结(核心)
+---------------------------+ | operEntryTbl[] | ← 操作对象池 (对象数组) +---------------------------+ | 0 | 1 | 2 | ... | N-1 | +---------------------------+↓ 初始化时全部加入 +------------------------+ +-------------------------+ | …...

【iOS】 Block再学习
iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...

云原生安全实战:API网关Envoy的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关 作为微服务架构的统一入口,负责路由转发、安全控制、流量管理等核心功能。 2. Envoy 由Lyft开源的高性能云原生…...