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

深入探索 PyTorch:回归与分类模型的全方位解析

深入探索 PyTorch:回归与分类模型的全方位解析

在当今数据驱动的时代,机器学习与深度学习技术正广泛应用于各个领域,助力我们从海量数据中挖掘有价值的信息。而 PyTorch 作为一款备受青睐的深度学习框架,为开发者们提供了简洁且高效的工具来构建各类智能模型。本文将深入探讨基于 PyTorch 的线性回归、逻辑回归以及多分类模型,不仅涵盖基础理论与实现步骤,还会涉及模型优化、常见问题剖析等拓展内容,旨在为大家呈上一份详尽的学习指南。

一、线性回归 —— 预测连续变量的利器

线性回归旨在建立输入特征与连续目标变量之间的线性关系,常用于预测房价、气温、销售额等实际数值。

(一)数据预处理:奠定模型基石

  1. 标准化:对输入特征 X 和目标值 y 进行标准化处理是至关重要的第一步。标准化能使数据特征具有统一的尺度,加速模型收敛。例如,使用 StandardScaler 来自 sklearn.preprocessing 对 X 进行标准化,确保每个特征均值为 0,方差为 1。对于 y,同样的标准化操作可避免因目标值量级差异过大而导致的训练不稳定性,别忘了将 y 转换为二维数组(y = y.reshape(-1, 1))以适配后续操作。
  2. 时间窗口处理(若有):当涉及时间序列数据且给定时间窗口(如连续 7 个样本特征拼接)时,x 会呈现三维结构。为适配线性回归模型的输入要求,需将其展平为二维张量,通过 x = x.reshape(-1, x.shape[1] * x.shape[2]) 实现,这一步能将时间窗口内的特征信息有效整合,为模型提供连贯的输入。

(二)模型搭建:简洁而有力

借助 torch.nn.Linear 模块构建线性回归模型,其参数 in_features 依据展平后的 x 特征维度设定,确保输入层神经元数量与之匹配,out_features 固定为 1,因为我们的目标是输出单一的连续预测值,就像 model = torch.nn.Linear(in_features=x.shape[1], out_features=1) 这般简洁明了。

(三)损失函数与优化器:驱动模型前行

  1. 损失函数:均方误差(MSELoss)是线性回归的经典损失函数选择。它衡量预测值与真实值之间的平均平方误差,通过 loss_fn = nn.MSELoss() 定义,模型训练过程中致力于最小化该损失值,以不断逼近真实的目标值。
  2. 优化器:Adam 优化器以其自适应学习率调整策略备受推崇,在 PyTorch 中通过 optimizer = torch.optim.Adam(model.parameters(), lr=0.001) 启用,它能在训练过程中根据梯度变化动态优化学习率,助力模型快速且稳定地收敛。

(四)训练循环:迭代中成长

在训练阶段,需进行多轮迭代,每一轮都包含前向传播、损失计算、反向传播和参数更新步骤。前向传播时,模型依据输入 x_train 生成预测值 h;接着,利用损失函数计算预测值与真实 y_train 之间的误差;随后,通过反向传播 loss.backward() 将误差反向传播,计算各参数的梯度;最后,调用 optimizer.step() 更新模型参数。并且,每 10 个 epoch 输出一次损失值,方便监控训练进程,如 if i % 10 == 0: print(i, loss)

二、逻辑回归 —— 二分类的得力助手

逻辑回归专注于解决二分类问题,比如判断邮件是否为垃圾邮件、肿瘤是良性还是恶性等,它将输入数据映射到 0 和 1 之间的概率值,以判别所属类别。

(一)数据预处理:精细打磨数据

与线性回归类似,输入特征 X 需标准化,以消除特征间的量纲差异。目标值 y 要转换为二维 torch.float 数组,即 y = torch.tensor(y, dtype=torch.float).reshape(-1, 1),这一步为后续的概率计算与模型训练做好准备。

(二)模型架构:融合线性与非线性

逻辑回归模型由线性层和 Sigmoid 函数巧妙组合而成。使用 torch.nn.Sequential 构建,先通过线性层 torch.nn.Linear(in_features=x.shape[1], out_features=1) 对输入特征进行线性变换,再利用 Sigmoid 函数 torch.nn.Sigmoid() 将输出转换为概率值,完整模型如 model = torch.nn.Sequential( torch.nn.Linear(in_features=x.shape[1], out_features=1), torch.nn.Sigmoid())

(一)损失函数与优化器:精准度量与优化

  1. 损失函数:二元交叉熵损失(BCELoss)专为二分类问题设计,它基于概率值与真实类别标签计算损失,精准度量模型预测与实际情况的偏差,通过 loss_fn = nn.BCELoss() 引入。
  2. 优化器:同样选用 Adam 优化器,以 optimizer = torch.optim.Adam(model.parameters(), lr=0.001) 启动,助力模型在二分类任务中快速找到最优参数组合。

(二)评估指标:量化模型表现

训练完成后,除了关注损失值,还需评估模型的准确率。首先将模型输出的概率值 h 与阈值 0.5 比较,通过 h = (h > 0.5).int() 转换为类别预测值,再与真实值 y 对比,计算准确率 acc = (h == y).float().mean(),以此直观反映模型在二分类任务中的判别能力。

三、多分类问题 —— 应对复杂类别场景

在面对诸如图像识别(识别不同物体类别)、文本分类(划分不同主题文章)等多分类任务时,多分类模型大显身手。

(一)数据预处理:通用的标准化

如同前两种模型,输入特征 X 先进行标准化处理,确保数据质量,为后续模型训练奠定基础。

(二)模型构造:层层递进的架构

多分类模型通常采用多层架构,以引入足够的非线性能力。起始的线性层 torch.nn.Linear(in_features=x.shape[1], out_features=128) 接收标准化后的输入特征,将其映射到一个高维空间,随后通过 ReLU 激活函数 torch.nn.ReLU() 增加非线性特性,最后再经过一个线性层 torch.nn.Linear(in_features=128, out_features=hot_dim) 将特征映射到类别数量维度,其中 hot_dim 为实际的类别数,整体模型构建如 model = torch.nn.Sequential( torch.nn.Linear(in_features=x.shape[1], out_features=128), torch.nn.ReLU(), torch.nn.Linear(in_features=128, out_features=hot_dim) )

(三)损失函数与优化器:适配多分类任务

  1. 损失函数:交叉熵损失(CrossEntropyLoss)是多分类问题的首选。它巧妙地结合了 softmax 函数(在 CrossEntropyLoss 内部隐式实现),将模型输出转换为类别概率分布,并与真实类别标签计算损失,通过 loss_fn = nn.CrossEntropyLoss() 启用,引导模型学习不同类别间的差异。
  2. 优化器:依旧是 Adam 优化器担纲主力,以 optimizer = torch.optim.Adam(model.parameters(), lr=0.001) 驱动模型在多分类训练的漫漫长路上稳步前行。

(四)预测与评估:精准判别类别

预测时,模型输出的是各类别的得分或概率分布,通过 h = h.argmax(-1) 操作找到得分最高的类别作为预测结果。在评估模型性能时,可结合多种指标,如准确率、召回率、F1 值等,从不同角度全面衡量模型在多分类任务中的表现,这些指标能帮助我们深入了解模型的优势与不足,以便针对性地优化。

四、模型优化与拓展思考

(一)超参数调优

除了固定的学习率(如文中常用的 0.001),模型还有诸多超参数等待挖掘优化潜力,如线性回归中的正则化参数、神经网络的隐藏层数量与节点数等。可以通过网格搜索、随机搜索或更高级的超参数优化算法(如贝叶斯优化)来探索超参数空间,找到最适配数据集与任务的组合,提升模型性能。

(二)模型复杂度平衡

对于复杂模型,虽有更强的拟合能力,但也易面临过拟合风险;而简单模型可能出现欠拟合。在实际应用中,需根据数据的复杂度、样本量等因素,合理调整模型架构,如在多分类模型中增减隐藏层或改变节点数量,在线性回归中考虑是否引入正则化,以达到拟合能力与泛化能力的最佳平衡。

(三)可视化分析

利用 matplotlib 等工具可视化模型训练过程中的损失变化、预测结果与真实值对比等,能直观呈现模型的状态。例如,绘制训练与测试损失随 epoch 的变化曲线,观察是否存在过拟合或欠拟合迹象;绘制预测值与真实值的散点图,查看模型预测的准确性与偏差方向,为模型改进提供可视化依据。

总之,通过深入理解并熟练运用 PyTorch 构建线性回归、逻辑回归和多分类模型,结合精细的数据预处理、合理的模型选择与优化,我们能够应对各种复杂的数据挖掘与分析任务,解锁数据背后的深层价值。希望本文能成为你在 PyTorch 学习道路上的坚实助力,让你在机器学习与深度学习的海洋中乘风破浪,驶向成功的彼岸。

相关文章:

深入探索 PyTorch:回归与分类模型的全方位解析

深入探索 PyTorch:回归与分类模型的全方位解析 在当今数据驱动的时代,机器学习与深度学习技术正广泛应用于各个领域,助力我们从海量数据中挖掘有价值的信息。而 PyTorch 作为一款备受青睐的深度学习框架,为开发者们提供了简洁且高…...

案例分析:东华新径,拉动式生产的智造之路

目录 文章目录 目录南京东华智能转向系统有限公司是一家什么公司?背景知识:新能源汽车生产制造流程简介东华遇见了什么问题?东华希望如何解决?解决思路:从 “推动式生产” 到 “拉动式生产”,从 “冗余式思…...

【android bluetooth 框架分析 01】【关键线程 5】【bt_main_thread介绍】

1. 概述 system/stack/btu/btu_task.cc bt_main_thread 是 Android Bluetooth 协议栈中的核心线程,负责处理蓝牙协议栈中的大部分关键任务和事件。它相当于蓝牙协议栈的"大脑",协调各种蓝牙功能的运行。 2. 重要性 bt_main_thread 的重要性…...

城市应急安防系统EasyCVR视频融合平台:如何实现多源视频资源高效汇聚与应急指挥协同

一、方案背景 1)项目背景 在当今数字化时代,随着信息技术的飞速发展,视频监控和应急指挥系统在公共安全、城市应急等领域的重要性日益凸显。尤其是在关键场所,高效的视频资源整合与传输能力对于应对突发公共事件、实现快速精准的…...

自动化测试常用函数

自动化测试常用函数 前言1. 元素的定位1.1 cssSelector1.2 xpath1.2.1 获取 HTML 页面所有的节点1.2.2 获取 HTML 页面指定的节点1.2.3 获取一个节点中的直接子节点1.2.4 获取一个节点的父节点1.2.5 实现节点属性的匹配1.2.6 使用指定索引的方式获取对应的节点内容 2. 操作测试…...

OpengGL教程(七)---摄像机

本章参考官方教程:摄像机 本系列历史文 OpengGL教程(一)—OpenGL环境的配置(GLFW3,GLAD) OpengGL教程(二)—渲染一个简单的窗体 OpengGL教程(三)—使用VAO和VBO方式绘制三角形 OpengGL教程(四)—使用EBO方式绘制矩形 OpengGL教程(五)—纹理的应用 OpengGL教程(六)—…...

springboot禁用静态资源

使用 application.properties 在 application.properties 中添加如下配置: spring.web.resources.add-mappingsfalse使用 application.yml 在 application.yml 中添加如下配置: spring:web:resources:add-mappings: false配置解释 spring.web.resou…...

猫咪如厕检测与分类识别系统系列【二】多图上传及猫咪分类特征提取更新

前情提要 家里养了三只猫咪,其中一只布偶猫经常出入厕所。但因为平时忙于学业,没法时刻关注牠的行为。我知道猫咪的如厕频率和时长与健康状况密切相关,频繁如厕可能是泌尿问题,停留过久也可能是便秘或不适。为了更科学地了解牠的…...

‌ViewModel和AndroidViewModel的主要区别

‌ViewModel和AndroidViewModel的主要区别在于它们的继承关系、构造函数以及使用场景。‌ ‌继承关系与构造函数‌: ‌ViewModel‌:ViewModel是一个抽象类,位于androidx.lifecycle包中。它是所有ViewModel类的基类,构造函数较为…...

myeclise导入项目并运行

1、把项目复制到myeclise工作目录 2、导入项目:将项目导入到myeclise工作目录 3、配置jre 4、把项目放到tomcat 5、运行项目 配置数据库后运行...

XSS 防御转义规则笔记

一、转义规则概述 核心目标:防止用户输入被浏览器解析为可执行代码,确保输入始终被视为数据而非代码。 关键策略:根据数据嵌入的上下文环境(HTML、JavaScript、CSS 等),对特殊字符进行转义或编码。 二、不…...

【2025年认证杯数学中国数学建模网络挑战赛】C题 完整论文 全三问模型+求解+代码

目录 【2025年认证杯数学建模挑战赛】C题数据预处理与全三问求解一、问题重述二、模型假设与符号说明2.1 模型基本假设2.2 符号说明 三、数据预处理及分析四、问题一五、问题二5.1 基于互相关函数的反应延时识别5.2 反应过程延时结果分析5.3 基于BP神经网络的不合格产物预测5.4…...

iOS应用开发指南

开发一款iOS应用是一个系统化的过程,涵盖从环境搭建、界面设计、编码实现到测试发布的各个环节。以下是一份面向初学者的iOS移动应用开发指南,帮助你从零开始构建自己的App。 一、准备工作:开发环境与工具 必备设备 Mac电脑:iO…...

小刚说C语言刷题——第21讲 一维数组

在日常生活中,我们经常输入一组数据。例如输入一个班30名学生的语文成绩,或者输入一组商品的价格。这个时候,我们如何输入一组类型相同的数据呢?这里我们就要用到数组。 1.数组的概念 所谓数组就是一组相同类型数据的集合。数组中…...

苍穹外卖2

根据id查询员工 调用顺序:Controller—>Service—>ServiceImpl—>Mapper—>xml 1.controller层一个tab秒了(ai生成) 由于result泛型中希望返回一个employee对象,所以定义一个employee来接受Service的getbyid方法,在…...

C语言之双层for循环

一、第一小题引入 循环次数用 外层循环内层循环 这一题即是: 3412(次) 外循环一次 内循环一趟(可以形象理解为 时针和 分针) 运行结果如下: 一、第二小题引入 请阅读下列代码: 执行程序.程序执行的循环次数为多少? 答案:20次 这一题 外层循环 从5开始到i结束 中间的i是…...

第8课:多智能体系统评估与迭代

多智能体系统评估与迭代:从指标设计到持续优化的全流程指南 一、引言:当智能体协作出现“磨合期”:评估与迭代为何是必经之路? 在多智能体系统(MAS)的实际运行中,即使架构设计合理,也可能面临“协作效率下降”“资源浪费”等问题: 任务完成率突然从95%降至70%,却找…...

HTTP:三.HTTP报文

报文流 http报文是以一种类似的流的方式来发送数据的,所以报文流讲述了http报文的一些客观状态,相关术语:流入、流出形容事务处理。http报文任何时候是从上游向下游流入的!其中进过的节点既可能是上游,有可能是下游,如果从某个节点流出,那么相对于此节点流入的那个节点…...

.NET MAUI教程1-入门并发布apk包安装到真机

由于本人水平有限,如有写得不对的地方往指出,由于是使用公司的电脑,电脑的操作系统是英文的,没有权限修改,所以本文截图中的vs是英文版的 以发布android为例进行讲解 测试环境: window 11 vs2022 步骤如…...

你所拨打的电话是空号?手机状态查询API

一、引言 在当今数字化营销时代,电话销售仍然是许多企业获取客户的重要手段之一。然而,电销过程中常常遇到空号、风险号和沉默号等问题,这不仅降低了营销效率,还增加了企业的运营成本。例如,频繁拨打空号浪费了大量时…...

C++顺序栈的实现

顺序栈详细介绍 定义与特点 顺序栈(Sequential Stack)是一种基于数组实现的栈结构,利用数组的连续内存空间存储元素,遵循后进先出(LIFO)原则。其核心特点包括: 固定或动态容量:初始…...

element-ui 中的 select 组件如何 remote-method 函数中传参

在 select 组件中我们使用其 change 事件可以传参&#xff0c;请查看&#xff1a;el-select 中change 事件传参问题。 在我们使用 select 组件的远程搜索时&#xff0c;我们如何给 remote-method 这个方法添加自定义参数呢&#xff1f; 代码实现如下&#xff1a; <el-sel…...

浅谈解释型语言的运用

不得不说&#xff0c;程序不需要编译&#xff0c;程序在运行时才翻译成机器语言&#xff0c;每执行一次&#xff0c;都要翻译一次&#xff0c;因此效率比较低。在运行程序时才翻译&#xff0c;专门有一个解释器去进行翻译&#xff0c;每个语句都是执行的时候才翻译&#xff0c;…...

云手机哪个平台最好用?云手机性能、服务、技术等多维度测评分析

在云手机市场日渐繁荣的当下&#xff0c;面对琳琅满目的云手机平台&#xff0c;用户往往难以抉择云手机哪个平台最好。下面我们就从从性能、价格等多维度分析&#xff0c;云手机平台哪家强&#xff0c;队国内好用的云手机平台进行排行盘点。 好用的云手机平台排行盘点 第一&…...

idea版的cursor:Windsurf Wave 7

在企业环境中&#xff0c;Visual Studio Code和JetBrains系列是最常用的开发工具&#xff0c;覆盖了全球绝大多数开发者。这两类IDE各有优势&#xff0c;但JetBrains系列凭借其针对特定语言和企业场景的深度优化&#xff0c;使得用户很难轻易更换工具。 虽然Windsurf编辑器是基…...

【IDEA】创建 SpringBoot 项目连接 MySQL

前言 IntelliJ IDEA 作为一款专业的 Java 开发工具&#xff0c;在创建和管理 Spring Boot 项目方面具有显著优势。它深度集成了 Spring Boot 的开发流程&#xff0c;从项目初始化到最终部署都提供了高效的支持。IDEA 内置的 Spring Initializr 工具让项目创建变得极其简单&…...

使用 IntelliJ IDEA 进行远程调试

1. 前言 今天线上出现了个 Bug &#xff0c;而且比较坑的是涉及到k8s环境相关的东西不能线下调试。传统方式是在代码中各种的日志 log 埋点然后重新部署进行调试&#xff0c;再根据 log 中的信息进行分析。如果你的 log 埋点不合理&#xff0c;就要不停的修改代码、不停的打包…...

Linux操作系统--进程状态

目录 1.运行、阻塞、挂起 1.1运行 1.2阻塞 1.3挂起(了解一下即可&#xff0c;基本不会出现这种情况) 2.进程状态 2.1进程状态查看 2.2 Z-僵尸进程 2.3孤儿进程 1.运行、阻塞、挂起 1.1运行 运行状态&#xff1a; 进程正在占用CPU执行指令。此时进程对系统资源&#xff…...

【端到端】端到端自动驾驶依赖Occupancy进行运动规划?还是可以具有生成局部地图来规划?

端到端自动驾驶系统的架构设计&#xff0c;目前主流做法实际上已经出现两种路径&#xff0c;我们来拆解一下&#xff1a; &#x1f698; 一、Occupancy 是否用于运动规划&#xff1f; 一种趋势是使用 Occupancy 表示作为 中间表征&#xff0c;用于&#xff1a; 运动规划&…...

HarmonyOS-ArkUIV2装饰器-@Param:组件外部输入

上文我们了解了@Local装饰器 ,讲明了Local装饰器不允许外部传入值对其进行初始化。详见: HarmonyOS-ArkUI V2装饰器@Local装饰器:组件内部状态-CSDN博客。 但总有场景是需要外部组件传值过来,然后本组件接收这个值这种场景的。而且很多情况下,一个状态变量的作用范围会是…...

报错 ImportError: cannot import name ‘packaging‘ from ‘pkg_resources‘

解决方法一 &#xff08;推荐&#xff09; 先检查setuptools是否为70.0.0版本 pip list | grep setuptools再降低版本 python -m pip install setuptools69.5.1或者&#xff1a; 解决方法二 上述的报错信息表明&#xff1a;在安装 mmcv 时出现了 pkg_resources 模块的问题…...

Ollama调用多GPU实现负载均衡

文章目录 &#x1f4ca; 背景说明&#x1f6e0;️ 修改 systemd 服务配置1. 配置文件路径2. 编辑服务文件2. 重新加载配置并重启服务3. 验证配置是否成功 &#x1f4c8; 应用效果示例1. 调用单个70b模型2. 调用多个模型&#xff08;70b和32b模型&#xff09; 总结&#x1f4cc;…...

Next.js 简介

Next.js 是一个由 Vercel 开发的基于 React 的 Web 开发框架&#xff0c;旨在简化 React 应用的开发流程&#xff0c;提供更好的性能和开发体验。 &#x1f31f; Next.js 的核心特点 1. 文件系统路由&#xff08;File-system Routing&#xff09; 在 pages/ 目录中创建文件就…...

使用Apache POI(Java)创建docx文档和表格

1、引入poi 依赖组件 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>4.0.0</version> </dependency> <dependency><groupId>org.apache.poi</groupId>&…...

Dynamics365 ExportPdfTemplateExportWordTemplate两个Action调用的body构造

这两天在用ExportPdfTemplate做pdf导出功能时&#xff0c;遇到了如下问题InnerException : Microsoft.OData.ODataException: An unexpected StartArray node was found when reading from the JSON reader. A PrimitiveValue node was expected. 我的场景是使用power automate…...

《算法笔记》3.3小节——入门模拟->图形输出

1036 跟奥巴马一起编程 #include <iostream> #include <cmath> using namespace std;int main() {int n,m;char c;cin>>n>>c;for (int i 0; i < n; i) {cout<<c;}cout<<endl;m round(1.0*n/2)-2;//round里面不能直接写n/2&#xff0c;…...

iOS 上的内存管理是如何处理的?

iOS主要通过自动引用计数&#xff08;ARC&#xff09;和内存管理模型来处理内存。以下是对这两者的详细介绍以及在实际工作中的应用场景&#xff1a; 1. 自动引用计数&#xff08;ARC&#xff09; ARC是iOS和macOS中的内存管理机制。它能自动跟踪和管理应用程序的内存使用情况…...

河北工程大学e2e平台,python

题目&#xff0c;选择题包100分&#xff01; 题目&#xff0c;选择题包100分&#xff01; 题目&#xff0c;选择题包100分&#xff01; 联系&#x1f6f0;&#xff1a;18039589633...

【Qt】spdlog日志模块的使用

版本 spdlog版本&#xff1a;1.5.0 采用1.5.0版本主要基于以下考虑&#xff1a;兼容Qt5.9.X版本和兼容C11。 spdlog 1.5.0下载地址&#xff1a;https://github.com/gabime/spdlog/releases/tag/v1.5.0 摘要 在Qt应用程序开发中&#xff0c;良好的日志系统至关重要。本文将介…...

python相关面试题

python相关面试题 1.上下文管理器需要实现哪两种方法以及相关应用 2.对比一下进程&#xff0c;线程和协程 3.魔法函数有哪些 4.什么是闭包和装饰器&#xff0c;装饰器缺点是什么 5.什么是浅拷贝和深拷贝 6.什么是GIL锁和互斥锁 7.init和new有什么区别&#xff0c;new方法的返回…...

swift菜鸟教程11-12(数组与字典)

一个朴实无华的目录 今日学习内容&#xff1a;1.Swift 数组1.1创建数组1.2访问数组1.3修改数组使用 append() 方法或者赋值运算符 在数组末尾添加元素通过索引修改数组元素的值&#xff1a; 1.4遍历数组 使用for-in循环同时需要每个数据项的值和索引值 1.5合并数组1.6count 属…...

.NET WPF 控件类分层结构

.NET WPF 控件类分层结构 在 WPF 中&#xff0c;类的层级结构设计是为了实现线程安全、依赖属性、可视化渲染、布局和交互等功能。以下是 WPF 核心基类的逐级说明&#xff0c;从最底层到最顶层&#xff1a; 1 DispatcherObject 作用&#xff1a; 提供与 WPF 线程模型&#xf…...

基于ImGui+FFmpeg实现播放器

基于ImGuiFFmpeg实现播放器 演示&#xff1a; ImGui播放器 继续研究FFmpeg&#xff0c;之前做了一个SDL的播放器&#xff0c;发现SDL的可视化UI界面的功能稍微差了点&#xff0c;所以今天我们换了一个新的工具&#xff0c;也就是ImGui。 ImGui官方文档&#xff1a;https://g…...

【Docker】快速部署 Certbot 并为 Nginx 服务器配置 SSL/TLS 证书

【Docker】快速部署 Certbot 并为 Nginx 服务器配置 SSL/TLS 证书 引言 Certbot 是一个免费的开源工具&#xff0c;用于自动化管理和获取 SSL/TLS 证书&#xff0c;主要用于与 Let’s Encrypt 证书颁发机构交互。 步骤 Nginx 挂载 certbot 文件夹。 docker run -d \--name…...

MATLAB编写的机械臂控制仿真程序,它主要实现了对一个二连杆机械臂的运动控制仿真,比较了PID控制和非线性模型预测控制两种方法在机械臂轨迹跟踪任务中的性能

clc; clear; close all;%% 机械臂参数 l1 0.5; l2 0.4; Ts 0.02; sim_time 60; t 0:Ts:sim_time;%% 物理参数 m1 1.0; m2 0.8; g 9.81;%% 直线轨迹参数 start_point [0.3; 0.1]; end_point [0.7; 0.3]; progress t/sim_time; xd start_point(1) (end_point(1) - s…...

python办公自动化------word文件的操作

一、 word文件的创建 需要安装包&#xff1a;python-docx 例1&#xff1a;创建word文件 from docx import Document# 创建doc对象 doc Document()# 指定路径下创建一个docx文件 doc.save(./dataFile/test1_doc.docx) 运行结果&#xff1a; 例2&#xff1a;word中添加内容 …...

Python小程序 - 文件处理3:正则表达式

正则表达式&#xff1a;文本年鉴表。遗留的问题很多。。。用AI再想想 需求&#xff1a;读入txt文件&#xff0c;过滤文件有关年记录 0&#xff09;读入txt文件 1&#xff09;以“。”&#xff0c;中文句号&#xff0c;为界区分一句&#xff0c;最小统计单位 2&#xff09;年格…...

JAVA中正则表达式的入门与使用

JAVA中正则表达式的入门与使用 一&#xff0c;基础概念 正则表达式&#xff08;Regex&#xff09; 用于匹配字符串中的特定模式&#xff0c;Java 中通过 java.util.regex 包实现&#xff0c;核心类为&#xff1a; Pattern&#xff1a;编译后的正则表达式对象。 Matcher&#…...

智慧能源管理平台:驱动电网数字化转型,引领绿色能源新时代

安科瑞 华楠18706163979 一、引言 在全球能源转型和"双碳"目标的推动下&#xff0c;微电网作为分布式能源系统的重要组成部分&#xff0c;正迎来快速发展期。安科瑞电气股份有限公司推出的微电网智慧能源管理平台&#xff08;EMS 3.0&#xff09;&#xff0c;通过整…...

OpenCV 图形API(30)图像滤波-----腐蚀操作函数erode()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 使用特定的结构元素腐蚀图像。 cv::gapi::erode 是 OpenCV 的 G-API 模块中用于执行图像腐蚀操作的函数。腐蚀是一种基本的形态学操作&#xff0…...