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

Pytorch深度学习教程_3_初识pytorch

欢迎来到《PyTorch深度学习教程》系列的第三篇!在前面的两篇中,我们已经介绍了Python及numpy的基本使用。今天,我们将深入探索PyTorch的核心功能,帮助你更好地理解和使用这个强大的深度学习框架。

欢迎订阅专栏:

深度学习保姆教程_tRNA做科研的博客-CSDN博客


 

目录

1.张量:深度学习的基石

(1)张量的理解

(2)张量的关键属性

(3)创建张量

(4)张量为何重要

2.张量操作与广播

(1)基本张量操作

(2)广播机制

(3)索引和切片

(4)数学运算

(5)常见问题与最佳实践

3.Pytorch使用GPU

(1)GPU 和 CUDA 的基本概念

(2)在 PyTorch 中启用 GPU 加速

GPU 加速的优势

4.PyTorch 的生态系统和工具

(1)TorchVision:你的计算机视觉工具箱

(2)TorchText:轻松处理自然语言处理

(3)TorchAudio:你的音频工具包

其他值得注意的工具

5.结语


1.张量:深度学习的基石

张量是深度学习中的基本数据结构,可以看作是多维数组,能够表示从简单数字到图像、文本等复杂数据。理解张量对于掌握深度学习至关重要。

(1)张量的理解

标量(零维张量)‌:表示单个数值。

import torchscalar_tensor = torch.tensor(42)

向量(一维张量)‌:表示一列数字。

vector_tensor = torch.tensor([1, 2, 3])

矩阵(二维张量)‌:表示一个表格数字。

matrix_tensor = torch.tensor([[1, 2], [3, 4]])

高维张量:表示图像、视频等复杂数据。

(2)张量的关键属性

  • 形状(Shape)‌:定义张量的维度。

print(matrix_tensor.shape)  # 输出:torch.Size([2, 2])
  • 数据类型(Dtype)‌:指定张量中元素的类型。
print(matrix_tensor.dtype)  # 输出:torch.int64
  • 设备(Device)‌:表示张量存储的位置(CPU或GPU)。
print(matrix_tensor.device)  # 输出:cpu

(3)创建张量

可以从多种方式创建张量:

  • 从Python列表创建

my_list = [1, 2, 3]
tensor = torch.tensor(my_list)
  • 使用内置函数创建
zeros_tensor = torch.zeros(3, 4)   # 创建全零张量
ones_tensor = torch.ones(2, 2)     # 创建全一张量
random_tensor = torch.randn(2, 3)  # 创建随机数张量

(4)张量为何重要

张量提供了一种统一的方式来表示和操作深度学习中的数据,并且在GPU上进行高效计算,是现代神经网络的基石。

通过理解张量及其属性,你将能够更好地构建和训练深度学习模型。

2.张量操作与广播

张量操作和广播机制是深度学习中不可或缺的工具。本节将深入探讨核心张量操作以及广播机制。

(1)基本张量操作

与 NumPy 数组类似,可以对张量执行逐元素操作:

算术运算:

import torchx = torch.tensor([1, 2, 3])
y = torch.tensor([4, 5, 6])sum_tensor = x + y  # 逐元素相加
difference = x - y  # 逐元素相减
product = x * y     # 逐元素相乘
division = x / y    # 逐元素相除

聚合函数:

mean_value = torch.mean(x)
sum_value = torch.sum(x)
max_value = torch.max(x)
min_value = torch.min(x)

(2)广播机制

广播机制允许不同形状的张量进行运算,只要满足一定条件。

基本广播:

scalar = 2
tensor = torch.tensor([1, 2, 3])
result = tensor * scalar  # 将标量广播以匹配张量的形状

复杂广播:

a = torch.tensor([[1, 2], [3, 4]])
b = torch.tensor([10, 20])
result = a * b  # 将 b 广播以匹配 a 的形状

(3)索引和切片

可以使用索引和切片来访问张量的特定元素或子集。

基本索引:

tensor = torch.tensor([10, 20, 30, 40])
first_element = tensor[0]
last_element = tensor[-1]

切片:

subtensor = tensor[1:3]  # 从索引 1 到 2(不包括 3)的元素

(4)数学运算

PyTorch 提供了常见的线性代数运算函数。

矩阵乘法:

matrix1 = torch.randn(2, 3)
matrix2 = torch.randn(3, 2)
product = torch.matmul(matrix1, matrix2)

点积:

vector1 = torch.tensor([1, 2, 3])
vector2 = torch.tensor([4, 5, 6])
dot_product = torch.dot(vector1, vector2)

(5)常见问题与最佳实践

形状不匹配:‌ 确保张量具有兼容的形状以进行运算。

数据类型:‌ 注意张量的数据类型,以避免意外结果。

GPU 利用:‌ 利用 GPU 加速进行更快的计算。

清晰性:‌ 使用清晰的变量名和注释以提高代码可读性。

通过理解张量操作和广播机制,可以更高效地操作和处理数据,从而更好地构建和训练深度学习模型。

3.Pytorch使用GPU

GPU 加速是深度学习中不可或缺的一部分,尤其在处理大规模数据和复杂模型时,其优势尤为显著。通过 PyTorch,我们可以轻松地利用 GPU 的强大计算能力来加速模型的训练和推理过程。

(1)GPU 和 CUDA 的基本概念

GPU(Graphics Processing Unit)‌:最初设计用于图像处理,但其并行计算能力使其成为处理深度学习任务的理想选择。

CUDA(Compute Unified Device Architecture)‌:这是 NVIDIA 提供的一套并行计算平台和编程模型,允许开发者利用 NVIDIA GPU 的计算能力。

我们已经在之前的教程中配置好了CUDA:

2025最新深度学习pytorch完整配置:conda/jupyter/vscode-CSDN博客

(2)在 PyTorch 中启用 GPU 加速

首先,检查系统中是否安装了 GPU 并且 PyTorch 能够识别它:

import torchif torch.cuda.is_available():print("GPU is available!")
else:print("GPU is not available.")

接下来,创建一个在 GPU 上运行的张量:

device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
tensor = torch.randn(3, 4, device=device)

也可以在 CPU 和 GPU 之间移动张量

tensor_cpu = tensor.to("cpu")
tensor_gpu = tensor_cpu.to(device)

GPU 加速的优势

  • 更快的训练时间:对于大型模型和数据集,GPU 可以显著减少训练时间。
  • 实时应用:GPU 加速使得实时推理成为可能,这对于图像和视频处理等应用至关重要。
  • 更大的模型:GPU 的并行计算能力使得训练更大、更复杂的模型成为可能。

4.PyTorch 的生态系统和工具

PyTorch 拥有一个充满活力的工具和库生态系统,这些工具和库补充了其核心功能,使其成为深度学习开发的综合平台。让我们探索一些关键组件。

(1)TorchVision:你的计算机视觉工具箱

TorchVision 是专为计算机视觉任务设计的包。它提供了:

  • 预训练模型:如 ResNet、VGG 和 AlexNet 等先进模型。
  • 数据集:常见数据集,如 ImageNet、CIFAR-10 和 MNIST。
  • 变换:用于图像预处理的数据增强技术。
import torch
import torchvision# 加载预训练的 ResNet 模型
model = torchvision.models.resnet50(weights=ResNet50_Weights.IMAGENET1K_V1)# 或者使用默认权重
# model = torchvision.models.resnet50(weights=ResNet50_Weights.DEFAULT)

(2)TorchText:轻松处理自然语言处理

TorchText 用于处理基于文本的数据,提供:

  • 数据集:常见 NLP 数据集,如 IMDB 和 Penn Treebank。
  • 文本处理工具:分词、填充和数值化等。
  • 词嵌入:预训练的词嵌入,如 GloVe 和 FastText。
import torch
from torchtext.datasets import IMDB# 加载 IMDB 数据集
train_data, test_data = IMDB(split=('train', 'test'))

(3)TorchAudio:你的音频工具包

TorchAudio 专注于音频处理,包括:

  • 音频加载和保存:支持多种音频格式。
  • 音频变换:音频数据增强技术。
  • 特征提取:用于提取频谱图和梅尔频谱图的工具。

其他值得注意的工具

  • PyTorch Lightning:高级框架,简化训练,提供分布式训练和超参数调整等功能。
  • TorchX:用于管理和部署 PyTorch 模型的平台。
  • Hydra:配置管理工具,用于组织复杂实验。
  • Weights & Biases:实验跟踪、可视化和协作平台。

构建坚实的基础

利用 PyTorch 生态系统,你可以:

  • 加速开发:利用预构建的组件和工具。
  • 提升模型性能:受益于优化的实现和数据增强技术。
  • 简化工作流:有效管理实验和协作。

通过结合 PyTorch 和这些工具,你可以高效地应对各种深度学习挑战。

记住:PyTorch 生态系统在不断演进,因此了解最新发展至关重要。

5.结语

本教程主要是快速入门,熟悉整个框架,对于比较细节的地方,我们通过具体的项目进行学习!下次见!

相关文章:

Pytorch深度学习教程_3_初识pytorch

欢迎来到《PyTorch深度学习教程》系列的第三篇!在前面的两篇中,我们已经介绍了Python及numpy的基本使用。今天,我们将深入探索PyTorch的核心功能,帮助你更好地理解和使用这个强大的深度学习框架。 欢迎订阅专栏: 深度…...

个人博客5年回顾

https://huangtao01.github.io/ 五年前,看程序羊的b站视频做的blog,受限于网络,只能单向学习,没有人指导与监督,从来没有想过,有没有什么问题? 一、为什么要做个人博客? 二、我是怎么…...

DeepSeek与ChatGPT:会取代搜索引擎和人工客服的人工智能革命

云边有个稻草人-CSDN博客 在众多创新技术中,DeepSeek和ChatGPT无疑是最为引人注目的。它们通过强大的搜索和对话生成能力,能够改变我们与计算机交互的方式,帮助我们高效地获取信息,增强智能服务。本文将深入探讨这两项技术如何结合…...

SpringBoot高级-底层原理

目录 1 SpringBoot自动化配置原理 01-SpringBoot2高级-starter依赖管理机制 02-SpringBoot2高级-自动化配置初体验 03-SpringBoot2高级-底层原理-Configuration配置注解 04-SpringBoot2高级-底层原理-Import注解使用1 05-SpringBoot2高级-底层原理-Import注解使用2 06-S…...

百问网(100ask)的IMX6ULL开发板的以太网控制器(MAC)与物理层(PHY)芯片(LAN8720A)连接的原理图分析(包含各引脚说明以及工作原理)

前言 本博文承接博文 https://blog.csdn.net/wenhao_ir/article/details/145663029 。 本博文和博文 https://blog.csdn.net/wenhao_ir/article/details/145663029 的目录是找出百问网(100ask)的IMX6ULL开发板与NXP官方提供的公板MCIMX6ULL-EVK(imx6ull14x14evk)在以太网硬件…...

使用 PyTorch 实现标准卷积神经网络(CNN)

卷积神经网络(CNN)是深度学习中的重要组成部分,广泛应用于图像处理、语音识别、视频分析等任务。在这篇博客中,我们将使用 PyTorch 实现一个标准的卷积神经网络(CNN),并介绍各个部分的作用。 什…...

openGauss 3.0 数据库在线实训课程18:学习视图管理

前提 我正在参加21天养成好习惯| 第二届openGauss每日一练活动 课程详见:openGauss 3.0.0数据库在线实训课程 学习目标 掌握openGauss视图的管理:创建视图、删除视图、查询视图的信息、修改视图的信息。 课程作业 1.创建表,创建普通视图…...

nginx ngx_http_module(7) 指令详解

nginx ngx_http_module(7) 指令详解 nginx 模块目录 nginx 全指令目录 一、目录 1.1 模块简介 以下是您请求的Nginx HTTP相关模块的简述: ngx_http_proxy_protocol_vendor_module:这是一个商业订阅模块,允许从云平台的应用特定TLV&#…...

用DeepSeek零基础预测《哪吒之魔童闹海》票房——从数据爬取到模型实战

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 文章目录 **一、为什么要预测票房?****二、准备工作****三、实战步骤详解****Step 1:数据爬取与清洗&am…...

青少年编程都有哪些比赛可以参加

Python小学生可参加的赛事: 电子学会青少年编程考级、中国计算机学会编程能力等级认证、蓝桥杯、 信奥赛CSP-J/S初赛/NOIP(推荐C)、编程设计、信息素养、科技创新赛; 升学助力(科技特长生、大学)、企业、出国留学; python比赛&am…...

如何使用 Flutter DevTools 和 PerformanceOverlay 监控性能瓶颈

使用 Flutter DevTools 和 PerformanceOverlay 监控性能瓶颈:详细分析与实战 在开发 Flutter 应用时,性能问题可能会导致用户体验下降,比如页面卡顿、掉帧、内存泄漏等。为了定位和解决这些问题,Flutter 提供了强大的性能监控工具…...

拯救者电脑在重装系统之后电源计划丢失Fn+Q切换不了模式怎么恢复?

参考联想知识库的一下链接: https://iknow.lenovo.com.cn/detail/196192 其中下载的解压文件后的文件需要复制粘贴到D盘的根目录下,再来运行文件。若在生成的log文件中看到导入成功以及控制面板中看到已添加的电源计划即可 如果还是无效可是试试以下的…...

自动创建spring boot应用(eclipse版本)

使用spring starter project创建项目 设置Service URL 把Service URL设置为 https://start.aliyun.com/ 如下图: 使用这个网址,创建项目更快。 选择Spring Web依赖 项目结构 mvnw和mvnw.cmd:这是maven包装器(wrapper)脚本&…...

通过监督微调提升多语言大语言模型性能

引言 澳鹏助力一家全球科技公司提升其大语言模型(LLM)的性能。通过提供结构化的人工反馈形式的大语言模型训练数据,让该模型在30多种语言、70多种方言中的表现得到优化。众包人员们进行多轮对话,并依据回复的相关性、连贯性、准确…...

应急响应(linux 篇,以centos 7为例)

一、基础命令 1.查看已经登录的用户w 2.查看所有用户最近一次登录:lastlog 3.查看历史上登录的用户还有登录失败的用户 历史上所有登录成功的记录 last /var/log/wtmp 历史上所有登录失败的记录 Lastb /var/log/btmp 4.SSH登录日志 查看所有日志:…...

鹰角基于 Flink + Paimon + Trino 构建湖仓一体化平台实践项目

摘要:本文整理自鹰角大数据开发工程师,Apache Hudi Contributor 朱正军老师在 Flink Forward Asia 2024 生产实践(二)专场中的分享。主要分为以下四个部分: 一、鹰角数据平台架构 二、数据湖选型 三、湖仓一体建设 四、…...

探秘Transformer系列之(3)---数据处理

探秘Transformer系列之(3)—数据处理 接下来三篇偏重于工程,内容略少,大家可以当作甜点 _。 0x00 概要 有研究人员认为,大模型的认知框架看起来十分接近卡尔弗里斯顿(Karl Friston)描绘的贝叶斯大脑。基于贝叶斯概率…...

跨平台AES/DES加密解密算法【超全】

算法说明 要实现在 WinForm、Android、iOS、Vue3 中使用 相同的算法,确保各平台加密结果互通 一、统一加密参数 算法: AES-256-CBC 密钥: 32字节(示例中使用固定字符串生成) IV: 16字节 填充模式: PKCS7 字符编码: UTF-8 输出格式: Base64二、各平台实现代码...

XML DOM 高级

XML DOM 高级 引言 XML(可扩展标记语言)是一种用于存储和传输数据的标记语言,DOM(文档对象模型)是用于访问和操作XML文档的编程接口。在XML DOM中,我们可以对XML文档进行读取、修改、添加和删除等操作。本…...

MySQL智障离谱问题,删了库确还存在、也不能再创建同名库

1、问题 今天跟后端朋友接毕设单子的时候,后端穿过来的【weather.sql】这个文件没弄好,导致这个【weather】数据库的数据是错的,因此我用datagrip的GUI界面直接右键删除,结果就是tmd删不掉,ok,我只能在那新…...

网工项目实践2.6 广域网需求分析及方案制定

本专栏持续更新,整一个专栏为一个大型复杂网络工程项目。阅读本文章之前务必先看《本专栏必读》。 全网拓扑展示 一.广域网互联方式 1.专线 优点 稳定 独享。绝对安全。可靠性高,带宽高,完全取决于终端接口。 缺点: 费用高。建设时间长。难…...

11.编写前端内容|vscode链接Linux|html|css|js(C++)

vscode链接服务器 安装VScode插件 Chinese (Simplified) (简体中⽂) Language Pack for Visual Studio CodeOpen in BrowserRemote SSH 在命令行输入 remote-ssh接着输入 打开配置文件,已经配置好主机 点击远程资源管理器可以找到 右键链接 输入密码 …...

GITHUB的若干操作

GITHUB的若干操作 github又名代码仓库,是git的远程和线上延申,Git是一个分布式版本控制系统,用于跟踪文件的更改和协助多人合作开发。它由Linus Torvalds为更好地管理Linux内核开发而设计。git最原始是为Linux系统设计而生,不过后…...

网页制作04-html,css,javascript初认识のhtml如何使用列表

Html列表共有三种类型: 1.一种是无序列表,项目符号有几个符号组成; 2.一种是有序列表,项目符号由字母或数字进行排序; 3.一种是定义列表,它用作产生条件和描述的双重列表,可以对列表进行灵活定义 一、有序列表 1.有序列表ol 1&#xff09;一般格式&#xff1a; <ol>…...

Linux:进程间通信(一.初识进程间通信、匿名管道与命名管道、共享内存)

目录 1.认识进程间通信 2.管道 2.1匿名管道 2.2pipe()函数 —创建匿名管道 2.3匿名管道的四种情况 2.4管道的特征 3.基于管道的进程池设计 4.命名管道 4.1引入与性质 4.2命令行创建 4.3程序中创建命名管道 写个小项目 项目规划 PipeClient.cpp PipeServe.cpp 5.…...

深度解析:使用 Headless 模式 ChromeDriver 进行无界面浏览器操作

一、问题背景&#xff08;传统爬虫的痛点&#xff09; 数据采集是现代网络爬虫技术的核心任务之一。然而&#xff0c;传统爬虫面临多重挑战&#xff0c;主要包括&#xff1a; 反爬机制&#xff1a;许多网站通过检测请求头、IP地址、Cookie等信息识别爬虫&#xff0c;进而限制…...

Spring Boot中使用Flyway进行数据库迁移

文章目录 概要Spring Boot 集成 FlywayFlyway 其他用法bug错误Flyway版本不兼容数据库存在表了Flyway 的校验和&#xff08;Checksum&#xff09;不匹配 概要 在 Spring Boot 项目开发中&#xff0c;数据库的变更不可避免。手动执行 SQL 脚本不仅容易出错&#xff0c;也难以维…...

Conda 常用命令全解析

在 Windows 系统中&#xff0c;Conda 是一款功能强大的包管理和环境管理工具&#xff0c;尤其对于数据分析、科学计算等场景有着重要的作用。本文将详细介绍 Conda 在 Windows 系统中的常用命令&#xff0c;帮助你高效地管理虚拟环境和软件包。 一、环境管理命令 1.1 查看 Co…...

【Vue教程】使用Vite快速搭建前端工程化项目 Vue3 Vite Node.js

??大家好&#xff01;我是毛毛张! ??个人首页&#xff1a; ??今天毛毛张分享的是关于如何快速??♂搭建一个前端工程化的项目的环境搭建以及流程?? 文章目录 1.前端工程化环境搭建?? 1.1 什么是前端工程化1.2 nodejs的简介和安装 1.2.1 什么是Nodejs1.2.2 如何安装…...

基于51单片机的定时器实现LED闪烁控制(CT107D)

引言 在嵌入式开发中&#xff0c;定时器是一个非常重要的外设&#xff0c;它可以用于实现精确的时间控制。本文将介绍如何在CT107D单片机综合训练平台上&#xff0c;利用51单片机的定时器T0实现LED灯的定时闪烁控制。具体功能如下&#xff1a; L1指示灯&#xff1a;每隔1秒闪烁…...

一键部署开源DeepSeek并集成到钉钉

一键部署开源DeepSeek并集成到钉钉 简介&#xff1a; DeepSeek发布了两款先进AI模型V3和R1&#xff0c;分别适用于对话AI、内容生成及推理任务。由于官方API流量限制&#xff0c;阿里云推出了私有化部署方案&#xff0c;无需编写代码即可完成部署&#xff0c;并通过计算巢AppF…...

Web后端 Tomcat服务器

一 Tomcat Web 服务器 介绍&#xff1a; Tomcat是一个开源的Java Servlet容器和Web服务器&#xff0c;由Apache软件基金会开发。它实现了Java Servlet和JavaServer Pages (JSP) 技术&#xff0c;用于运行Java Web应用程序。Tomcat轻量、易于配置&#xff0c;常作为开发和部署…...

java多线程及线程池

线程 一、什么是多线程&#xff1f;二、线程的生命周期三、简单地创建一个线程1、实现Runnable接口2、继承Thread类3、使用Callable和FutureTask4、三种实现方式的对比 四、线程同步和锁1、为什么需要线程同步&#xff1f;2、线程同步的实现方式3、synchronized和ReentrantLock…...

Unreal5从入门到精通之如何在 C++ 中创建 UserWidget

文章目录 前言UUserWidget 子类示例创建我们的 C++ 类的新蓝图子类更改现有蓝图的父类现在我们有了 C++ 基类,下一步做什么?蓝图还是 C++?结论前言 在之前的教程中,我展示了如何在编辑器中创建 UserWidget 蓝图, 在本教程中,我们将创建一个新的基于 C++ 的子类UUserWid…...

Elasticsearch:探索 CLIP 替代方案

作者&#xff1a;来自 Elastic Jeffrey Rengifo 及 Toms Mura 分析图像到图像和文本到图像搜索的 CLIP 模型的替代方案。 在本文中&#xff0c;我们将通过一个模拟房地产网站的实际示例介绍 CLIP 多模态模型&#xff0c;探索替代方案&#xff0c;并分析它们的优缺点&#xff0c…...

天翼云910B部署DeepSeek蒸馏70B LLaMA模型实践总结

一、项目背景与目标 本文记录在天翼云昇腾910B服务器上部署DeepSeek 70B模型的全过程。该模型是基于LLaMA架构的知识蒸馏版本&#xff0c;模型大小约132GB。 1.1 硬件环境 - 服务器配置&#xff1a;天翼云910B服务器 - NPU&#xff1a;8昇腾910B (每卡64GB显存) - 系统内存&…...

Mac 清理缓存,提高内存空间

步骤 1.打开【访达】 2.菜单栏第五个功能【前往】&#xff0c;点击【个人】 3.【command shift J】显示所有文件&#xff0c;打开【资源库】 4.删除【Containers】和【Caches】文件 Containers 文件夹&#xff1a;用于存储每个应用程序的沙盒数据&#xff0c;确保应用程序…...

bash+crontab充当半个守护进程的歪招

两个cpolar下的不同程序&#xff0c;都需要定时监测&#xff0c;以免程序没有再运行。有点类似半个守护进程吧。但是守护进程不会写&#xff0c;咋搞&#xff1f;就用这个办法临时当下守门员。这里主要为了备忘xpgrep -各类参数的用法。 #!/bin/bashif pgrep -fl "check_…...

Android JNI的理解与使用。

写在前面&#xff1a;Java相对于C/C来说是更高级的语言&#xff0c;隐藏了指针&#xff0c;可读性更高&#xff0c;更容易学习&#xff0c;但是无法直接操作硬件、运行速度较慢也是不可回避的硬伤。JNI就是Java官方定义的一套标准“接口”&#xff0c;用于Java和C/C之间互相调用…...

解决DeepSeek服务器繁忙的有效方法

全球42%的企业遭遇过AI工具服务器过载导致内容生产中断&#xff08;数据来源&#xff1a;Gartner 2025&#xff09;。当竞品在凌晨3点自动发布「智能家居安装指南」时&#xff0c;你的团队可能正因DeepSeek服务器繁忙错失「净水器保养教程」的流量黄金期⏳。147SEO智能调度系统…...

PyInstaller全平台打包深度解析:资源打包与路径兼容终极方案

一、典型问题场景分析 案例现象&#xff1a;PyQt5开发的GUI程序本地运行正常&#xff0c;但打包后出现以下问题&#xff1a; 程序图标丢失CSS样式表失效图片资源无法加载配置文件读取失败 问题本质&#xff1a;PyInstaller默认不会打包非代码资源文件&#xff0c;且打包后程…...

FreeSwitch的mod_spandsp模块

FreeSWITCH 的 mod_spandsp 模块是一个基于 Spandsp 库 的核心模块&#xff0c;主要用于实现 传真&#xff08;Fax&#xff09;、DTMF 信号处理 以及 语音编解码转换 等功能。它通过集成 SpandSP 的数字信号处理能力&#xff0c;使 FreeSWITCH 能够与传统通信系统&#xff08;如…...

【c++】【Linux】【进程】线程终止/崩溃 会导致进程终止/崩溃 吗?

【c】【Linux】【进程】线程终止/崩溃 会导致进程终止/崩溃 吗&#xff1f; 1.线程终止会导致进程终止吗&#xff1f; 在操作系统中&#xff0c;线程是进程的基本执行单元&#xff0c;一个进程可以包含一个或多个线程。 当一个子线程终止时&#xff0c;进程并不会因此自动终…...

Deepseek 怼CHATGPT实况

提示词&#xff1a; 用犀利的语言批评ChatGPT 深度思考&#xff08;R1) 嗯&#xff0c;用户让我用犀利的语言批评ChatGPT。首先&#xff0c;我需要理解他们的动机。可能他们遇到了ChatGPT的某些问题&#xff0c;比如回答不准确或者缺乏深度&#xff0c;所以想表达不满。也有…...

内核数据结构用法(2)list

list 在 Linux 内核中&#xff0c;链表操作是通过一组宏和函数来实现的&#xff0c;这些操作通常用来管理和遍历链表。以下是一些常用的链表函数和宏的具体用法。 1. 定义链表节点 首先&#xff0c;你需要定义一个包含 struct list_head 的结构体&#xff1a; #include <…...

量化自学 - 金融理论与python - Net Present Value 净现值

净现值&#xff08;Net Present Value&#xff0c;NPV&#xff09;是金融理论中用于评估投资项目价值的指标。其核心思想是将未来现金流按一定贴现率折算为当前价值&#xff0c;并减去初始投资成本。若NPV为正&#xff0c;表明项目预期收益高于成本&#xff0c;具有投资价值&am…...

Java Web开发实战与项目——用户认证与授权模块开发

Web应用中&#xff0c;用户认证与授权是至关重要的功能&#xff0c;确保只有合法用户才能访问受保护的资源。Spring Security作为一个强大的安全框架&#xff0c;支持多种认证与授权方式。在本章节中&#xff0c;我们将深入探讨三种常见的用户认证与授权方案&#xff1a;基于To…...

蓝桥杯篇---IAP15F2K61S2中断

文章目录 前言简介中断源1.外部中断2.定时器中断3.串口中断4.ADC中断5.PCA中断6.SPI中断7.PWM中断 中断优先级中断相关寄存器1.IE2.IP3.TCON4.SCON 中断使用步骤1.配置中断源2.使能中断3.设置优先级4.编写中断服务程序5.清除中断标志 示例代码&#xff1a;外部中断使用示例代码…...

django连接mysql数据库

1.下载mysqlclient第三方库 2.在settings.py里连接数据库&#xff08;提前建好&#xff09; DATABASES {default: {ENGINE: django.db.backends.mysql,NAME: 学生信息,USER: root,PASSWORD: 999123457,HOST: localhost,POST: 3306,} } 3.在models.py里创建一个类&#xff0…...

Python爬虫TLS

TLS指纹校验原理和绕过 浏览器可以正常访问&#xff0c;但是用requests发送请求失败。 后端是如何监测得呢&#xff1f;为什么浏览器可以返回结果&#xff0c;而requests模块不行呢&#xff1f; https://cn.investing.com/equities/amazon-com-inc-historical-data 1.指纹校…...