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

Ubuntu20.04 深度学习环境配置(持续完善)

文章目录

  • 常用的一些命令
  • 安装 Anaconda
    • 创建conda虚拟环境
    • 查看虚拟环境大小
  • 安装显卡驱动
  • 安装CUDA
  • 安装cuDNN
    • 官方仓库安装 cuDNN
    • 安装 cuDNN 库
    • 验证 cuDNN 安装
    • 确认 CUDA 和 cuDNN 是否匹配:
  • TensorRT
    • 下载 TensorRT
    • 安装 TensorRT 本地仓库
    • 配置 GPG 签名密钥
    • 安装 TensorRT
    • 配置环境变量
    • 验证安装
  • 安装pytroch
    • 选择Pytorch版本
    • 在官网查找conda命令
    • 验证pytorch是否安装成功
  • 参考


常用的一些命令

更新 Conda

conda update conda -y

检查 NVIDIA 驱动版本

在本地机器上,确保已安装合适版本的 NVIDIA 驱动和 CUDA Toolkit,否则 GPU 无法正常工作。

nvidia-smi

通过 nvcc 命令查看 CUDA Toolkit 版本

如果您的系统安装了 CUDA Toolkit,可以运行以下命令查看版本:

nvcc --version

您会看到类似以下输出:

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Feb_14_23:09:47_PST_2023
Cuda compilation tools, release 12.1, V12.1.105

其中 release 12.1 表示当前的 CUDA Toolkit 版本是 12.1。

1.查看当前安装的 torch 版本

python -c "import torch; print(torch.__version__)"
2.4.1.post100   # 若返回这个,表明仅安装的CPU版本 

2.确认当前安装的 PyTorch 是否支持 GPU 加速

python -c "import torch; print(torch.cuda.is_available())"
  • 输出 True 表示 GPU 可用。
  • 输出 False 表示未启用 GPU,可能是因为没有安装支持 CUDA 的版本或系统未检测到 GPU。

3.查看 PyTorch 使用的 CUDA 版本

python -c "import torch; print(torch.version.cuda)"

4.验证 GPU 信息

如果 GPU 可用,您还可以检查当前的 GPU 信息:

python -c "import torch; print(torch.cuda.get_device_name(0))"

安装 Anaconda

创建conda虚拟环境

conda create --name xxx python=3.11.9

查看虚拟环境大小

du -sh /home/damon/anaconda3           # base环境大小
du -sh /home/damon/anaconda3/envs/*    # 虚拟环境大小

安装显卡驱动

使用 nvidia-smi 来查看 NVIDIA GPU 的使用情况和显存信息:

如果系统上安装了 NVIDIA 驱动程序,该命令会显示 GPU 的型号、显存使用情况、温度等信息。

nvidia-smi

在这里插入图片描述

安装CUDA

查看当前cuda版本为11.3,也可以离理解成cuda的运行API

nvcc -V 

在这里插入图片描述

安装cuDNN

官方仓库安装 cuDNN

下载 cuDNN 包(.deb 文件):cuDNN

1.安装 cuDNN 本地仓库配置文件:

sudo dpkg -i cudnn-local-repo-ubuntu2004-8.9.7.29_1.0-1_amd64.deb
damon@damon-System-Product-Name:~$ sudo dpkg -i cudnn-local-repo-ubuntu2004-8.9.7.29_1.0-1_amd64.deb
(正在读取数据库 ... 系统当前共安装有 332813 个文件和目录。)
准备解压 cudnn-local-repo-ubuntu2004-8.9.7.29_1.0-1_amd64.deb  ...
正在解压 cudnn-local-repo-ubuntu2004-8.9.7.29 (1.0-1) 并覆盖 (1.0-1) ...
正在设置 cudnn-local-repo-ubuntu2004-8.9.7.29 (1.0-1) ...
damon@damon-System-Product-Name:~$ 

第一次安装的时候,还会有这个

The public cudnn-local-repo-ubuntu2004-8.9.7.29 GPG key does not appear to be installed.
To install the key, run this command:
sudo cp /var/cudnn-local-repo-ubuntu2004-8.9.7.29/cudnn-local-30472A84-keyring.gpg /usr/share/keyrings/

2.将 cuDNN 的 GPG 密钥复制到 /usr/share/keyrings/:

sudo cp /var/cudnn-local-repo-ubuntu2004-8.9.7.29/cudnn-local-30472A84-keyring.gpg /usr/share/keyrings/

3.更新 apt 包管理器的源列表:

sudo apt-get update

安装 cuDNN 库

一旦配置了本地仓库,您可以安装 cuDNN 的运行时和开发文件:

sudo apt-get install libcudnn8 libcudnn8-dev -y
  • libcudnn8:这是 cuDNN 运行时库。
  • libcudnn8-dev:这是 cuDNN 开发库,包括头文件和符号链接,供开发使用。

验证 cuDNN 安装

1.检查 cuDNN 库是否安装成功:

使用 dpkg 命令检查 cuDNN 安装情况:

dpkg -l | grep libcudnn

如果安装成功,您将看到类似如下的输出:

damon@damon-System-Product-Name:~$ sudo dpkg -l | grep cudnn
ii  cudnn-local-repo-ubuntu2004-8.9.7.29              1.0-1                                 amd64        cudnn-local repository configuration files
ii  cudnn-local-repo-ubuntu2004-9.5.1                 1.0-1                                 amd64        cudnn-local repository configuration files
ii  libcudnn8                                         8.9.7.29-1+cuda12.2                   amd64        cuDNN runtime libraries
ii  libcudnn8-dev                                     8.9.7.29-1+cuda12.2                   amd64        cuDNN development libraries and headers
damon@damon-System-Product-Name:~$ 

上面还有其他版本,可以通过一下命令卸载:

sudo apt-get remove cudnn-local-repo-ubuntu2004-9.5.1

2.验证 cuDNN 头文件和版本:

确保头文件存在:

damon@damon-System-Product-Name:~$ ls /usr/include/cudnn.h
/usr/include/cudnn.h
damon@damon-System-Product-Name:~$ 

然后查看 cuDNN 版本信息:

cat /usr/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

在这里插入图片描述

确认 CUDA 和 cuDNN 是否匹配:

确保 cuDNN 与 CUDA 版本兼容。运行以下命令确认当前的 CUDA 版本:

damon@damon-System-Product-Name:~$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Feb__7_19:32:13_PST_2023
Cuda compilation tools, release 12.1, V12.1.66
Build cuda_12.1.r12.1/compiler.32415258_0
damon@damon-System-Product-Name:~$ 

对应的 cuDNN 版本应与您安装的 CUDA 版本兼容。您可以在 NVIDIA 官网 查找兼容的版本列表。

TensorRT

在已经安装好 CUDA 和 cuDNN 的前提下,安装 TensorRT 的详细步骤如下所示:

下载 TensorRT

前往NVIDIA TensorRT 8.x Download,选择最新的 TensorRT 进行下载,推荐下载适合自己 CUDA 版本的 GA 版:

注意
TensorRT 的 GA 版是稳定的生产版本,适用于正式环境,而 EA 版是包含新功能的早期访问版本,适合开发和测试。

在这里插入图片描述
在这里插入图片描述

wget https://developer.nvidia.com/downloads/compute/machine-learning/tensorrt/secure/8.6.1/local_repos/nv-tensorrt-local-repo-ubuntu2004-8.6.1-cuda-12.0_1.0-1_amd64.deb

安装 TensorRT 本地仓库

下载完 .deb 文件后,使用 dpkg 命令来安装 TensorRT 的本地仓库:

damon@damon-System-Product-Name:/opt$ sudo dpkg -i nv-tensorrt-local-repo-ubuntu2004-8.6.1-cuda-12.0_1.0-1_amd64.deb
[sudo] damon 的密码: 
(正在读取数据库 ... 系统当前共安装有 332863 个文件和目录。)
准备解压 nv-tensorrt-local-repo-ubuntu2004-8.6.1-cuda-12.0_1.0-1_amd64.deb  ...
正在解压 nv-tensorrt-local-repo-ubuntu2004-8.6.1-cuda-12.0 (1.0-1) 并覆盖 (1.0-1) ...
正在设置 nv-tensorrt-local-repo-ubuntu2004-8.6.1-cuda-12.0 (1.0-1) ...
damon@damon-System-Product-Name:/opt$ 

这将安装 TensorRT 的本地仓库文件。

配置 GPG 签名密钥

将 TensorRT 本地仓库的 GPG 签名密钥复制到系统的 /usr/share/keyrings/ 目录,确保软件包来源可信:

sudo cp /var/nv-tensorrt-local-repo-ubuntu2204-8.6.1-cuda-12.0/nv-tensorrt-local-42B2FC56-keyring.gpg /usr/share/keyrings/

安装 TensorRT

然后,使用 apt-get 安装 TensorRT 包:

sudo apt-get install tensorrt

配置环境变量

安装完成后,你可能还需要配置一些环境变量以确保 TensorRT 和 CUDA 能够正常工作。

编辑 .bashrc 文件,然后添加以下行到文件末尾:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/TensorRT/lib
export PATH=$PATH:/usr/local/cuda/bin

保存文件并使更改生效:

source ~/.bashrc

验证安装

安装完成后,你可以通过以下命令检查 TensorRT 是否正确安装:

dpkg -l | grep tensorrt

输出应该类似于以下内容,确认 TensorRT 安装正确:

damon@damon-System-Product-Name:~$ dpkg -l | grep tensorrt
ii  nv-tensorrt-local-repo-ubuntu2004-8.6.1-cuda-12.0 1.0-1                                 amd64        nv-tensorrt-local repository configuration files
ii  tensorrt                                          8.6.1.6-1+cuda12.0                    amd64        Meta package for TensorRT
damon@damon-System-Product-Name:~$ 

安装pytroch

选择Pytorch版本

nvcc -V   #查看Pytorch对应的cuda版本,显示release 11.3, V11.3.58
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Feb__7_19:32:13_PST_2023
Cuda compilation tools, release 12.1, V12.1.66
Build cuda_12.1.r12.1/compiler.32415258_0

在官网查找conda命令

pytorch官网

# CUDA 12.1
conda install pytorch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 pytorch-cuda=12.1 -c pytorch -c nvidia

我们在安装显卡驱动时会安装cudatoolkit,在安装pytorch时也会安装cudatoolkit?安装显卡驱动时,cudatoolkit是一个完整安装包,而安装pytorch时安装的cudatoolkit只会安装pytorch会使用的部分,两个cudatoolkit是独立的,都在工作在显卡驱动上,所以我们还需要安装cudnn。cudatoolkit和cuda版本必须一样。

验证pytorch是否安装成功

1.通过 Python 代码验证 PyTorch 版本

import torch
print(torch.__version__)

2.使用命令行验证 PyTorch 版本

python -c "import torch; print(torch.__version__)"

3.使用 pip 查看 PyTorch 版本

pip show torch
Name: torch                                                                                                                                                                                                                                                                       
Version: 2.4.1                                                                                                                                                                                                                                                                    
Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration                                                                                                                                                                                               
Home-page: https://pytorch.org/                                                                                                                                                                                                                                                   
Author: PyTorch Team                                                                                                                                                                                                                                                              
Author-email: packages@pytorch.org                                                                                                                                                                                                                                                
License: BSD-3                                                                                                                                                                                                                                                                    
Location: /home/damon/anaconda3/envs/qhzpl/lib/python3.11/site-packages                                                                                                                                                                                                           
Requires: filelock, fsspec, jinja2, networkx, sympy, typing-extensions                                                                                                                                                                                                            
Required-by: torchaudio, torchvision   

4.使用 conda 查看安装的 PyTorch 版本

如果你使用的是 conda 环境,可以通过以下命令查看安装的 PyTorch 版本:

conda list pytorch

输出类似如下:

# packages in environment at /path/to/anaconda/envs/yourenv:
#
# Name                    Version                   Build  Channel                                                                                                                                                                                                                
pytorch                   2.4.1           py3.11_cuda12.1_cudnn9.1.0_0    pytorch                                                                                                                                                                                                 
pytorch-cuda              12.1                 ha16c6d3_6    pytorch                                                                                                                                                                                                              
pytorch-mutex             1.0                        cuda    pytorch      


参考

Ubuntu20.04 更新Nvidia驱动 + 安装CUDA12.1 + cudnn8.9.7

安装cudnn

Ubuntu 20.04 pytorch 环境搭建 深度学习 | 图文安装流程


相关文章:

Ubuntu20.04 深度学习环境配置(持续完善)

文章目录 常用的一些命令安装 Anaconda创建conda虚拟环境查看虚拟环境大小 安装显卡驱动安装CUDA安装cuDNN官方仓库安装 cuDNN安装 cuDNN 库验证 cuDNN 安装确认 CUDA 和 cuDNN 是否匹配: TensorRT下载 TensorRT安装 TensorRT 本地仓库配置 GPG 签名密钥安装 Tensor…...

Java 实现Excel转HTML、或HTML转Excel

Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,以便更好地利用和展示数据。本文将介绍如何通过 Java 实现 E…...

jQuery小游戏

jQuery小游戏(一) 嘻嘻,今天我们来写个jquery小游戏吧 首先,我们准备一下写小游戏需要准备的佩饰,如果:图片、音乐、搞怪的小表情 这里我准备了一些游戏中需要涉及到的图片 游戏中使用到的方法 eval() 函…...

Cpp::静态 动态的类型转换全解析(36)

文章目录 前言一、C语言中的类型转换二、为什么C会有四种类型转换?内置类型 -> 自定义类型自定义类型 -> 内置类型自定义类型 -> 自定义类型隐式类型转换的坑 三、C强制类型转换static_castreinterpret_castconst_castdynamic_cast 四、RTTI总结 前言 Hell…...

【PostgreSQL内核学习 —— (WindowAgg(一))】

WindowAgg 窗口函数介绍WindowAgg理论层面源码层面WindowObjectData 结构体WindowStatePerFuncData 结构体WindowStatePerAggData 结构体eval_windowaggregates 函数update_frameheadpos 函数 声明:本文的部分内容参考了他人的文章。在编写过程中,我们尊…...

SQL-leetcode—1158. 市场分析 I

1158. 市场分析 I 表: Users ----------------------- | Column Name | Type | ----------------------- | user_id | int | | join_date | date | | favorite_brand | varchar | ----------------------- user_id 是此表主键(具有唯一值的列&#xff…...

opensips中各个模块的解释

模块名称作用说明aaa_diameter提供基于 Diameter 协议的认证、授权和计费服务,适用于移动运营商和ISP的计费系统。aaa_radius提供基于 RADIUS 协议的认证、授权和计费功能,常用于无线网络接入和VPN等场景。auth_jwt用于支持基于 JSON Web Token (JWT) 的…...

【C++初阶】第11课—vector

文章目录 1. 认识vector2. vector的遍历3. vector的构造4. vector常用的接口5. vector的容量6. vector的元素访问7. vector的修改8. vector<vector\<int\>>的使用9. vector的使用10. 模拟实现vector11. 迭代器失效11.1 insert插入数据内部迭代器失效11.2 insert插入…...

SpringBoot开发(二)Spring Boot项目构建、Bootstrap基础知识

1. Spring Boot项目构建 1.1. 简介 基于官方网站https://start.spring.io进行项目的创建. 1.1.1. 简介 Spring Boot是基于Spring4框架开发的全新框架&#xff0c;设计目的是简化搭建及开发过程&#xff0c;并不是对Spring功能上的增强&#xff0c;而是提供了一种快速使用Spr…...

vim如何设置自动缩进

:set autoindent 设置自动缩进 :set noautoindent 取消自动缩进 &#xff08;vim如何使设置自动缩进永久生效&#xff1a;vim如何使相关设置永久生效-CSDN博客&#xff09;...

Jenkins上生成的allure report打不开怎么处理

目录 问题背景&#xff1a; 原因&#xff1a; 解决方案&#xff1a; Jenkins上修改配置 通过Groovy脚本在Script Console中设置和修改系统属性 步骤 验证是否清空成功 进一步的定制 也可以使用Nginx去解决 使用逆向代理服务器Nginx&#xff1a; 通过合理调整CSP配置&a…...

ASP.NET Blazor托管模型有哪些?

今天我们来说说Blazor的三种部署方式&#xff0c;如果大家还不了解Blazor&#xff0c;那么我先简单介绍下Blazor Blazor 是一种 .NET 前端 Web 框架&#xff0c;在单个编程模型中同时支持服务器端呈现和客户端交互性&#xff1a; ● 使用 C# 创建丰富的交互式 UI。 ● 共享使用…...

使用 Confluent Cloud 的 Elasticsearch Connector 部署 Elastic Agent

作者&#xff1a;来自 Elastic Nima Rezainia Confluent Cloud 用户现在可以使用更新后的 Elasticsearch Sink Connector 与 Elastic Agent 和 Elastic Integrations 来实现完全托管且高度可扩展的数据提取架构。 Elastic 和 Confluent 是关键的技术合作伙伴&#xff0c;我们很…...

二叉树的最小深度力扣--111

目录 题目 思路 代码 题目 给定一个二叉树&#xff0c;找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明&#xff1a;叶子节点是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1…...

PySide(PyQT)进行SQLite数据库编辑和前端展示的基本操作

以SQLite数据库为例&#xff0c;学习数据库的基本操作&#xff0c;使用QSql模块查询、编辑数据并在前端展示。 SQLite数据库的基础知识&#xff1a; https://blog.csdn.net/xulibo5828/category_12785993.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId1278…...

ARM64平台Flutter环境搭建

ARM64平台Flutter环境搭建 Flutter简介问题背景搭建步骤1. 安装ARM64 Android Studio2. 安装Oracle的JDK3. 安装 Dart和 Flutter 开发插件4. 安装 Android SDK5. 安装 Flutter SDK6. 同意 Android 条款7. 运行 Flutter 示例项目8. 修正 aapt2 报错9. 修正 CMake 报错10. 修正 N…...

Linux系统编程:进程状态和进程优先级/nice

目录 一,相对于OS的进程状态 1.1运行状态 1.2阻塞状态 1.3挂起状态 二,并发执行与进程切换 2.1,CPU并发执行 2.2进程切换 三,Linux内核管理进程状态的方法 3.1查看进程状态 3.2R状态 3.3S状态 3.4D状态 3.5T状态 3.6X状态 3.7Z状态 3.8孤儿进程 四,进程优先级 …...

【算法】数论基础——唯一分解定理(算术基本定理)python

目录 定义进入正题热身训练实战演练总结 定义 唯一分解定理&#xff1a;也叫做算数基本定理: 任意一个大于1的整数N&#xff0c;都可以唯一分解为若干个质数的乘积 换句话说&#xff0c;任何大于1的整数n可以表示为&#xff1a; 例如&#xff1a; 30 2^1 * 3^1 * 5^1 100 2^2…...

图形化数据报文转换映射工具

目录 概要整体架构流程技术名词解释技术细节小结 概要 在当今数字化时代&#xff0c;数据的处理和分析是企业、科研机构以及各类组织日常运营的核心环节。数据来源广泛&#xff0c;格式多样&#xff0c;常见的数据格式包括XML&#xff08;可扩展标记语言&#xff09;和JSON&a…...

性能优化案例:通过合理设置spark.shuffle.memoryFraction参数的值来优化PySpark程序的性能

在PySpark中&#xff0c;合理调整spark.shuffle.memoryFraction参数可以有效优化Shuffle阶段的性能&#xff0c;尤其是在存在大量磁盘溢出的场景下。 通过合理设置spark.shuffle.memoryFraction并结合其他优化手段&#xff0c;可显著减少Shuffle阶段的磁盘I/O&#xff0c;提升P…...

[C]基础9.深入理解指针(1)

博客主页&#xff1a;算法歌者本篇专栏&#xff1a;[C]您的支持&#xff0c;是我的创作动力。 文章目录 0、总结1、内存和地址1.1 内存1.2 理解编址 2、指针变量和地址2.1 取地址操作符&#xff08;&&#xff09;2.2 指针变量2.3 解引用操作符&#xff08;*&#xff09;2.4…...

网络模型简介:OSI七层模型与TCP/IP模型

计算机网络是现代信息社会的基石&#xff0c;而网络通信的基础在于理解网络模型。网络模型是对通信过程的抽象&#xff0c;它帮助我们理解数据从源到目的地的传输过程。常见的网络模型有 OSI 七层模型 和 TCP/IP 模型&#xff0c;这两种模型在理论和实践中都起着重要作用。 一、…...

第100+35步 ChatGPT学习:时间序列EMD-ARIMA-RF模型 vol. 2

基于Python 3.9版本演示 一、写在前面 上一节&#xff0c;我们学了EMD-ARIMA-RF模型去做预测。 这一节开始&#xff0c;我们尝试使用多项式回归矫正。 二、EMD&RF-ARIMA组合策略 该组合策略主要是将传统的经验模态分解&#xff08;EMD&#xff09;方法和现代的机器学习技…...

Adobe的AI生成3D数字人框架:从自拍到生动的3D化身

一、引言 随着人工智能技术的发展,我们见证了越来越多创新工具的出现,这些工具使得图像处理和视频编辑变得更加智能与高效。Adobe作为全球领先的创意软件公司,最近推出了一项令人瞩目的新技术——一个能够将普通的二维自拍照转换成栩栩如生的三维(3D)数字人的框架。这项技…...

2025美赛数学建模MCM/ICM选题建议与分析,思路+模型+代码

2025美赛数学建模MCM/ICM选题建议与分析,思路模型代码&#xff0c;详细更新见文末名片 一、问题A&#xff1a;测试时间&#xff1a;楼梯的恒定磨损&#xff08;Archaeological Modeling&#xff09; 适合专业&#xff1a;考古学、历史学、数学、机械工程 难度&#xff1a;中等…...

golang中的包管理-上--简介

‌Go语言中的包&#xff08;Package&#xff09;是组织和管理代码的基本单元&#xff0c;通过合理地使用包&#xff0c;可以提高代码的复用性、可维护性和可读性。 包的基本概念和定义 在Go语言中&#xff0c;每个源代码文件都属于一个包。包的声明位于文件的最顶部&#xff…...

深入了解 HTTP 头部中的 Accept-Encoding:gzip、deflate、br、zstd

在现代Web开发中&#xff0c;性能优化是至关重要的一部分。HTTP协议中的Accept-Encoding头部正是为性能提升提供了一个非常有效的方式&#xff0c;它告知服务器客户端能够理解并接收哪些压缩算法的响应内容。在这篇博客中&#xff0c;我们将详细探讨Accept-Encoding头部的作用&…...

QModbusTCPClient 服务器断开引起的程序崩溃

最近使用QModbusTCPClient 与一套设备通信&#xff0c;有一个QTimer频繁的通过读取设备寄存器。程序运行良好&#xff0c;但是有个问题&#xff1a;正常进行中设备断电了&#xff0c;整个程序都会崩溃。解决过程如下&#xff1a; 1.失败方案一 在QModbusTCPClient的errorOccu…...

Unity|小游戏复刻|见缝插针2(C#)

控制针的运动 新建一个Pin脚本 将Pin脚本拖到针Pin的下面 保存代码 using UnityEngine;public class Pin : MonoBehaviour {public float speed 5;private bool isFly false;private bool isReach false;private Transform startPosition;// Start is called once bef…...

数据结构——堆(C语言)

基本概念&#xff1a; 1、完全二叉树&#xff1a;若二叉树的深度为h&#xff0c;则除第h层外&#xff0c;其他层的结点全部达到最大值&#xff0c;且第h层的所有结点都集中在左子树。 2、满二叉树&#xff1a;满二叉树是一种特殊的的完全二叉树&#xff0c;所有层的结点都是最…...

ML基础2-python中的可视化1:matplotlib

承接我的上一篇博客&#xff1a; https://blog.csdn.net/weixin_62528784/article/details/145329298?spm1001.2014.3001.5501 在机器学习的过程中&#xff0c;我们需要掌握大量的Python包&#xff0c;常用的有pandas和numpy这些基本数据管理的包(在后续更新中我会讲解)与mat…...

SpringBoot--基本使用(配置、整合SpringMVC、Druid、Mybatis、基础特性)

这里写目录标题 一.介绍1.为什么依赖不需要写版本&#xff1f;2.启动器(Starter)是何方神圣&#xff1f;3.SpringBootApplication注解的功效&#xff1f;4.启动源码5.如何学好SpringBoot 二.SpringBoot3配置文件2.1属性配置文件使用2.2 YAML配置文件使用2.3 YAML配置文件使用2.…...

9.C++文件与流

C文件与流 在 C 中&#xff0c;文件和流是用于处理输入输出操作的重要概念&#xff0c;以下是关于它们的详细讲解&#xff1a; 流的概念 定义&#xff1a;流是一种抽象概念&#xff0c;它代表了数据的序列。在 C 中&#xff0c;流可以是输入流&#xff08;从外部源如文件或键…...

CSRF 跨站请求伪造漏洞

原理 当一个网站A使用Cookie&#xff0c;存储Session或Token来用于单点登录和权限操作时。浏览器将Cookie存储到浏览器中。当用户在访问另一个网站V时&#xff0c;黑客可以通过伪造表单&#xff0c;向网站A发送修改重要信息(如密码)、支付等操作&#xff0c;浏览器会自动携带C…...

从ABCD谈人工智能对软件开发的影响(2)

接“造词圈子割韭菜”-从ABCD谈人工智能对软件开发的影响&#xff08;1&#xff09; &#xff08;六&#xff09;分步解析之二&#xff1a;组织价值&#xff08;业务用例图&#xff09; 这一步本来建模难度也只有&#xff0c;AI的助力分数可以做到30分。 ★很多领域驱动设计…...

我谈《概率论与数理统计》的知识体系

学习《概率论与数理统计》二十多年后&#xff0c;在廖老师的指导下&#xff0c;才厘清了各章之间的关系。首先&#xff0c;这是两个学科综合的一门课程&#xff0c;这一门课程中还有术语冲突的问题。这一门课程一条线两个分支&#xff0c;脉络很清晰。 概率论与统计学 概率论…...

第 10 课 Python 内置函数

1. 什么是内置函数 Python解释器也是一个程序,它给用户提供了一些常用功能,并给它们起了独一无二的名字,这些常用功能就是内置函数。Python解释器启动以后,内置函数也生效了,可以直接拿来使用。 内置函数是解释器的一部分,它随着解释器的启动而生效;标准库函数是…...

MySQL中的读锁与写锁:概念与作用深度剖析

MySQL中的读锁与写锁&#xff1a;概念与作用深度剖析 在MySQL数据库的并发控制机制中&#xff0c;读锁和写锁起着至关重要的作用。它们是确保数据在多用户环境下能够正确、安全地被访问和修改的关键工具。 一、读锁&#xff08;共享锁&#xff09;概念 读锁&#xff0c;也称为…...

Kotlin Bytedeco OpenCV 图像图像50 仿射变换 图像缩放

Kotlin Bytedeco OpenCV 图像图像50 仿射变换 图像缩放 1 添加依赖2 测试代码3 测试结果 在OpenCV中&#xff0c;仿射变换&#xff08;Affine Transformation&#xff09;和透视变换&#xff08;Perspective Transformation&#xff09;是两种常用的图像几何变换方法。 变换方…...

导出地图为图像文件

使用函数可以将地图或布局视图的内容导出为图像文件. 操作方法: 1.打开目标地图文档 2.导入arcpy.mapping模块 import arcpy.mapping as mapping 3.引用当前活动地图文档,把该引用赋值给变量 mxd mapping.MapDocument() 4.获取地图文档中的数据框列表,查找目标数据框,并…...

【Linux】命令为桥,存在为岸,穿越虚拟世界的哲学之道

文章目录 Linux基础入门&#xff1a;探索操作系统的内核与命令一、Linux背景与发展历史1.1 Linux的起源与发展1.2 Linux与Windows的对比 二、Linux的常用命令2.1 ls命令 - "List"&#xff08;列出文件)2.2 pwd命令 - "Print Working Directory"&#xff08…...

如何在gitee/github上面搭建obsidian的图床

在搭建图床之前我们需要知道图床是一个什么东西,图床顾名思义就是存放图片的地方&#xff0c;那么我们为什么要搭建图床呢&#xff1f;因为我们在写博客的时候&#xff0c;很多同学都是在本地使用typora或者是obsidian进行markdown语法的文章的书写&#xff0c;文件格式通常都是…...

【DIY小记】减肥10kg保持半年的经验分享

作为程序员&#xff0c;脑力劳动者&#xff0c;保持一个健康的身体&#xff0c;是非常重要的。回顾24年自己取得的结果&#xff0c;一个比较亮眼的就是减肥减了10kg&#xff0c;到达了一个比较健康的体重&#xff0c;保持了半年没有反弹&#xff0c;当然到现在也依然在保持。今…...

[STM32 - 野火] - - - 固件库学习笔记 - - -十一.电源管理系统

一、电源管理系统简介 电源管理系统是STM32硬件设计和系统运行的基础&#xff0c;它不仅为芯片本身提供稳定的电源&#xff0c;还通过多种电源管理功能优化功耗、延长电池寿命&#xff0c;并确保系统的可靠性和稳定性。 二、电源监控器 作用&#xff1a;保证STM32芯片工作在…...

C# 探秘:PDFiumCore 开启PDF读取魔法之旅

一、引言 在当今数字化时代&#xff0c;PDF 文件就像一个个神秘的宝盒&#xff0c;里面装满了各种信息。无论是项目文档、学术论文还是产品说明书&#xff0c;PDF 格式凭借其良好的兼容性和稳定性&#xff0c;成为了信息传递的重要载体。想象一下&#xff0c;你接到一个紧急任…...

计算机网络-运输层

重点内容&#xff1a; 运输层 是整个网络体系结构中的关键层次之一。一定要弄清以下一些重要概念&#xff1a; (1) 运输层为相互通信的应用进程提供逻辑通信。 (2) 端口和套接字的意义。 (3) 无连接的 UDP 的特点。 (4) 面向连接的 TCP 的特点。 (5) 在不可靠的网…...

TLF35584 基本介绍

1 概述 1&#xff09;多电压电源芯片&#xff0c;包含6路输出电压。 LDO_Com&#xff1a;低降后调节器 5V/200mA 通信电源。LDO_C &#xff1a;低降后调节器 5V/600mA (TLF35584xxVS1)/3.3 V/600mA (TLF35584xxVS2) uC电源。Volt_Ref &#xff1a;参考电压5.0 V /- 1%/150mA …...

【Python】第四弹---深入理解Python控制流:从顺序到循环的全面解析

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【MySQL】【Python】 目录 1、顺序语句 2、条件语句 2.1、什么是条件语句 2.2、语法格式 2.3、缩进和代码块 2.4、练习 2.5、空…...

PBFT算法

在我的博客中对于RAFT算法也有详细的介绍&#xff0c;raft算法包含三种角色&#xff0c;分别是&#xff1a;跟随者&#xff08; follower &#xff09;&#xff0c;候选人&#xff08;candidate &#xff09;和领导者&#xff08; leader &#xff09;。集群中的一个节点在某一…...

软件过程模型

软件过程概念 软件生命周期 软件过程 在工作产品构建过程中&#xff0c;所需完成的工作活动&#xff0c;动作和任务的集合。 软件过程模型 软件过程评估 能力成熟度模型&#xff08;CMM&#xff09; 传统软件过程模型 瀑布模型&#xff08;第一个软件过程模型&#xff…...