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

第27周:文献阅读及机器学习

目录

摘要

Abstract

一、文献阅读

发现问题

研究方法

CNN-LSTM

DT

SVR 

创新点

案例分析

数据准备

模型性能

预测模型的实现

仿真实验及分析 

二、LSTM

1、基本结构 

2、具体步骤

3、举例说明

4、原理理解 

总结


摘要

本周阅读文献《Short-term water quality variable prediction using a hybrid CNN-LSTM deep learning model 》,本研究以希腊小普雷斯帕湖为对象,鉴于水质监测的重要性及传统方法的局限,采用传感器采集 2012 - 2013 年相关水质数据,构建 LSTM、CNN、CNN - LSTM 深度学习模型与 SVR、DT 传统机器学习模型,经数据集划分、变量归一化处理及训练后,以多种统计指标评估,结果表明混合 CNN - LSTM 模型在 DO 和 Chl - a 预测中表现最优,深度学习模型整体优于传统模型,且研究指出了未来可进一步探索的方向,如 DL 模型中长期预测、预处理方法及其他 DL 模型应用等。由于这两周阅读的文献都是LSTM相关的模型预测,所以复习了以下LSTM的基本结构和数学原理。

Abstract

This week we read the literature “Short-term water quality variable prediction using a hybrid CNN-LSTM deep learning model”, this study takes the small Prespa Lake in Greece as the object, in view of the importance of water quality monitoring and the limitations of the traditional methods, we use sensors to collect Given the importance of water quality monitoring and the limitations of traditional methods, we used sensors to collect water quality data from 2012 to 2013, and constructed LSTM, CNN, and CNN-LSTM deep learning models together with SVR and DT traditional machine learning models, and evaluated them with various statistical indicators after dataset partitioning, normalization of variables, and training, and the results showed that the hybrid CNN-LSTM model performed optimally for DO and Chl-a prediction, and that the deep learning model outperformed traditional models. The results show that the hybrid CNN-LSTM model performs best in DO and Chl - a prediction, and the deep learning model is better than the traditional model in general, and the study points out the directions that can be further explored in the future, such as the medium- and long-term prediction of the DL model, the preprocessing method, and the application of other DL models. Since the literature read in these two weeks are all LSTM-related model predictions, we reviewed the following basic structure and mathematical principles of LSTM.

一、文献阅读

本周阅读的文献是《Short-term water quality variable prediction using a hybrid CNN-LSTM deep learning model 》

发现问题

研究者们提出了一个关键问题:如何有效地预测和管理水资源,特别是在评估湖泊健康状况方面至关重要的溶解氧(DO)和叶绿素a(Chl-a)浓度。为了解决这一问题,他们探索了深度学习模型的应用,特别是长短期记忆网络(LSTM)和卷积神经网络(CNN)的潜力,以及它们结合形成的CNN-LSTM混合模型。研究者们旨在通过这些模型提高水质预测的准确性,并将它们与传统机器学习模型如支持向量回归(SVR)和决策树(DT)进行比较。 

研究方法

CNN-LSTM

该模型结合了卷积神经网络(CNN)和长短期记忆网络(LSTM)的优势,用于预测水质变量。CNN部分负责从时间序列数据中提取空间特征,而LSTM部分则用于捕捉时间序列中的长期依赖关系。模型通过训练数据集进行学习,调整参数以最小化预测误差,并通过测试数据集进行性能评估,使用相关系数、均方根误差等统计指标来衡量预测的准确性。 

DT

决策树模型是一种基于规则的机器学习方法,通过递归地分割数据来构建预测模型。在水质预测中,DT模型通过选择重要的特征并根据这些特征的值来划分数据,从而形成决策规则。模型的构建包括确定最佳分割点和控制树的复杂度,以避免过拟合。性能通过测试数据集上的预测结果来评估,考虑误差和其他统计指标 

SVR 

支持向量回归是一种基于支持向量机的回归方法,用于预测连续值。在水质预测中,SVR模型通过使用核技巧将输入数据映射到高维空间,找到最优的超平面来进行预测。模型的关键步骤包括选择核函数(如线性、RBF或多项式核),以及调整正则化参数和惩罚参数。SVR的性能通过测试数据集上的预测结果来评估,主要考虑误差大小和模型的泛化能力。 

创新点

1、混合模型的开发:文献中开发了一种新的混合深度学习模型,即CNN-LSTM模型,用于预测水质变量。这种模型结合了卷积神经网络(CNN)的特征提取能力和长短期记忆网络(LSTM)的时间序列分析优势,以提高预测的准确性。

2、水质变量的预测:文献专注于预测两个重要的水质变量——溶解氧(DO)和叶绿素a(Chl-a),这些变量对于水资源管理和环境监测至关重要。通过预测这些变量,可以更好地理解湖泊生态系统的健康状况。

3、与传统机器学习模型的比较:研究中不仅开发了深度学习模型,还将它们与传统的机器学习模型(如支持向量回归(SVR)和决策树(DT))进行了比较。这种比较有助于展示深度学习模型在水质预测方面的潜在优势。

案例分析

数据准备

在该研究中,数据准备包括从2012年6月1日至2013年5月31日在希腊Small Prespa Lake使用CYCLOPS-7传感器以15分钟间隔收集的水质数据,涉及溶解氧(DO)、叶绿素a(Chl-a)、pH值、氧化还原电位(ORP)、水温和电导率(EC)等变量。数据通过滑动窗口方法转换为监督学习格式,并使用滞后时间(t-1和t-2)处理时间序列。所有变量经过归一化和最小-最大缩放处理后,数据集被划分为70%的训练集和30%的测试集,以便进行模型的开发和验证.

模型性能

相关系数:衡量观测值与预测值之间的线性关系强度

各类误差:均方根误差RMSE、平均绝对误差MAE

百分比偏差PBIAS:衡量模型预测的系统偏差

Nash-Sutcliffe效率系数:评估模型的拟合程度

illmott一致性指数:检测模型对观测数据的敏感度

图形工具:泰勒图(展示相关系数和标准化标准差)、箱线图(比较模型预测值与挂测值得分布情况)、蜘蛛图(展示多个性能指标得综合表现)

预测模型的实现

LSTM模型 

使用输入层、隐藏层和输出层。隐藏层包括一个LSTM层,具有64个和32个单元,分别用于Chl-a和DO的预测。使用指数线性单元(ELU)作为激活函数,并在LSTM层后应用dropout层以防止过拟合。最后通过一个全连接层输出预测结果,并使用均方误差(MSE)损失函数和自适应梯度算法(AdaGrad)优化器进行训练。

CNN模型

包括输入层、隐藏层和输出层。隐藏层由卷积层激活层池化层组成。使用最大池化层和dropout层来调整过拟合,并通过全连接层输出预测结果。

CNN-LSTM混合模型

结合了CNN和LSTM的优势。首先使用CNN层提取特征,然后将这些特征输入到LSTM层进行时间序列预测。

 单个模型以及混合模型对于目标变量——溶解氧和叶绿素-a的损失如下图:

仿真实验及分析 

1、代码实现

model.py

CNN层

self.conv1d = nn.Conv1d(in_channels=cnn_in_channels, out_channels=cnn_out_channels, kernel_size=cnn_kernal_size, padding="same")
self.relu = nn.ReLU()
self.maxpool = nn.MaxPool1d(kernel_size= maxpool_kernal_size)

卷积层+激活函数+最大池化层 

LSTM层

self.lstm = nn.LSTM(input_size = int(lstm_input_size/maxpool_kernal_size),hidden_size = lstm_hidden_size,num_layers = lstm_num_layers,batch_first = True,dropout = dropout,proj_size = lstm_proj_size
)

 dropout层防止过拟合

前向传播

def forward(self, x):x = self.conv1d(x)x = self.relu(x)x = self.maxpool(x)lstm_out,_ = self.lstm(x)x = self.fc(lstm_out[:, -1, :])return x

 输入数据首先经过CNN进行特征提取,然后再经过LSTM进行时间序列的预测,最后从LSTM中选择最后一个时间步的输出作为全连接层的输入进行预测。

train.py

test.py

data_procecss.py 

2、结果分析 

时间序列图及其拟合图

上图是三个不同的深度学习模型。无论目标变量是溶解氧还是叶绿素-a,预测散点图表现最佳的都是CNN-LSTM混合模型,但是对于对于次优的单独模型有所不同。在溶解氧的预测中,LSTM模型明显更优于CNN模型;而在叶绿素-a的预测中,CNN模型的精确度高于LSTM模型。但是,像是SVR和DT这样的传统模型,它们无论在溶解氧还是叶绿素-a的预测表现都不如深度学习模型。 

泰勒图

泰勒图(Taylor diagram)是一种用于评估和比较不同模型或方法在模拟气候、天气、水文等时间序列数据时性能的图形工具。它通过三个主要的统计量来综合评价模型的预测技能:相关系数、标准差和偏差。

相关系数用来衡量模型观测值和预测值之间的相关性强度,该点与中心点的连线与相关系数轴线的夹角表示该模型的相关系数(点越接近圆周,相关性越强)

标准差用来衡量模型预测值的变异性或离散程度,在图中圆圈的半径表示预测值标准差和观测值标准差的比值(半径为1意味着模型预测的标准差与观测值完全相同)

偏差用来衡量观测值与预测值之间的平均误差,在图中表示为点与中心点之间的距离(点越接近中心表示偏差越小)

上图的结果中可以明显看出,CNN-LSTM模型具有最小的标准差和偏差,以及最大的相关系数。 

箱线图

箱线图是一种标准化的统计图表,用于展示数据分布的五个关键数值:最小值、第一四分位数(Q1)、中位数(Q2)、第三四分位数(Q3),以及最大值。 

 

在箱线图中,最佳模型的箱线图应该具有接近观测值中位数的中位数,较小的箱线长度,以及较少的异常值。 

LSTM模型在DO和Chl-a的预测中显示出较好的中位数和较集中的分布,表明其在捕捉时间序列数据中的长期依赖关系方面表现良好

CNN模型显示出较大的箱子或须,可能表明预测值的变异性较大,表明它在特征提取方面的优势。

CNN-LSTM模型显示出最佳的中位数、最集中的分布和最少的异常值,表明既有CNN的特征提取能力,又有LSTM的时间预测能力。

蜘蛛图

蜘蛛图(Spider Plot),也称为雷达图或极坐标图,是一种用于展示多变量数据的图表。在模型评估中,蜘蛛图可以直观地展示不同模型多个性能指标上的表现。 

下述结果图a表示不同模型的均方根误差RRMSE,图b表示不同模型的Nash-Sutcliffe效率系数E_{NS}

在蜘蛛图上,表现最佳的模型通常会形成一个更接近理想状态(图的边缘)的多边形,也就是正多边形,这就意味着该模型在所有指标上都表现良好。可以明显的看出CNN-LSTM模型的均方根误差最小,Nash-Sutcliffe效率系数CNN-LSTM模型接近1,表示模型预测与观测值基本一致,即模型预测非常准确。

二、LSTM

1、基本结构 

长短期记忆网络(LSTM,Long Short-Term Memory)是一种时间循环神经网络,是为了解决RNN存在的长期依赖问题而专门设计出来的,所有的RNN都具有一种重复神经网络模块的链式形式。 

LSTM的结构图如下所示: 

​ 

该结构中一共有三个控制信号,分别是input gate(控制memory cell的开关,只有“开”才会将信息保存至memory中 ) 、forget gate(决定memory cell何时重置清零)、output gate(控制memory cell的开关,只有“开”才会将memory中的信息读取出来)

LSTM的详细计算流程如下图:

字母含义介绍: 

z   输入

z_i “输入”控制信号

z_f “重置”控制信号

z_o “输出”控制信号

a   输出

c  memory中的值——{c}'  memory中更新后的值

g(z)f(z_i)f(z_f)f(z_o)h({c}')都是输入经过激活函数计算后的值 

2、具体步骤

step1 判断“输入门”是否开启

判断式g(z)f(z_i)

如果z_i是零(输入门关闭),那么式子也是零;如果z_i非零(输入门开启),那么式子非零(z不为零)

step2 判断“记忆门”是否开启

判断式cf(z_f)

如果z_f是零(记忆门关闭),那么式子也是零;如果z_f非零(记忆门开启),那么式子非零(c不为零)

step3 叠加记忆或者重置记忆

{c}'=g(z)f(z_i)+cf(z_f)

将step1和step2的两个式子相加得到该input信息在memory中的存储情况。总的来说,memory当中的取值取决于“输入门“控制 和”记忆门“控制二者。 

step4 判断”输出门“是否开启

判断式h({c}')f(z_o)

 如果z_o是零(输出门关闭),那么式子也是零;如果z_o非零(输出门开启),那么式子非零({c}'不为零)

3、举例说明

当{x_1x_2x_3} 的输入信息不断变化的时候,输出的分析如下图:

​ 

4、原理理解 

LSTM是RNN的一种特殊形式 ,其中的memory就可以看作是neural。一般的network当中,neural相当于一个处理input的function;LSTM中,memory也相当于一个function,只不过需要有4个对应的input。如下图: 

左图中的一个input只会乘以一个权重就放进neural中,右图中可以明显看出,一个input放进hidden layer当中的neural进行计算时,需要分为4个input,所以推测最初input的值应该是一个4维向量。 

然而,现实中的 LSTM会更加的复杂,结构如下图: 

​ 

每一个的计算都需要:该输入的4个input、上一输入的output、以及memory中存储的值。 

一般LSTM不止一层,会出现多层叠加的情况,如下: 

​ 

总结

本研究聚焦于希腊小普雷斯帕湖水质变量预测,开发了 LSTM、CNN 和混合 CNN - LSTM 深度学习模型及 SVR、DT 传统机器学习模型,经过实际案例得出混合 CNN - LSTM 模型在预测 DO 和 Chl - a 浓度上表现最佳,且深度学习模型整体优于传统模型,为水质监测提供了更优方法与思路。 进一步加深对与LSTM模型的理论学习和案例实践,并且学习了各种模型性能可视化评估(比如泰勒图、雷达图等)。

相关文章:

第27周:文献阅读及机器学习

目录 摘要 Abstract 一、文献阅读 发现问题 研究方法 CNN-LSTM DT SVR 创新点 案例分析 数据准备 模型性能 预测模型的实现 仿真实验及分析 二、LSTM 1、基本结构 2、具体步骤 3、举例说明 4、原理理解 总结 摘要 本周阅读文献《Short-term water qua…...

Tailwind CSS 实战:动画效果设计与实现

在现代网页设计中,动画效果就像是一位优秀的舞者,通过流畅的动作为用户带来愉悦的视觉体验。记得在一个产品展示网站项目中,我们通过添加精心设计的动画效果,让用户的平均停留时间提升了 35%。今天,我想和大家分享如何使用 Tailwind CSS 打造优雅的动画效果。 设计理念 设计动…...

在K8S中,Pod请求另一个Pod偶尔出现超时或延迟,如何排查?

在Kubernetes中,当Pod请求另一个Pod时偶尔出现超时或延迟,可能是由于多种原因造成的。以下是一些建立的排查步骤: 1. 检查网络配置和插件: 确认你的kubernetes集群使用了合适的网络插件(如Calico、Flannel等&#xf…...

C# 设计模式(结构型模式):外观模式

C# 设计模式(结构型模式):外观模式 (Facade Pattern) 在复杂系统中,往往会涉及到多个子系统、模块和类。这些子系统的接口和功能可能会让使用者感到困惑和复杂。在这种情况下,我们可以使用外观模式(Facade…...

LLM - 使用 LLaMA-Factory 部署大模型 HTTP 多模态服务 教程 (4)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/144881432 大模型的 HTTP 服务,通过网络接口,提供 AI 模型功能的服务,允许通过发送 HTTP 请求,交互大模型,通常基于云计算架构,无需在本地部署复杂的模型和硬件,…...

MCGS学习记录

软件包 用户窗口 主窗口 元件:工具箱->输入框上面 数据对象 在工作台的实时数据库可以新增数据对象 理解为中间变量,控件改变其值,控件监测其值做出变化 基本属性 设定变量名和初始值 指针化? 变化时自动保存初始值&#x…...

Swift Protocols(协议)、Extensions(扩展)、Error Handling(错误处理)、Generics(泛型)

最近在学习 Swift,总结相关知识 1. Protocols(协议) 1.1 协议的定义和实现 协议(protocol) 是一种定义方法和属性的蓝图,任何类、结构体或枚举都可以遵循协议。遵循协议后,需要实现协议中定义…...

axios和fetch的实现原理以及区别,与XMLHttpRequest的关系,并结合react封装统一请求示例

Axios 和 Fetch 对比及统一请求封装 1. Axios 基础用法 1.1 安装和引入 // 安装 npm install axios// 引入 import axios from axios;1.2 基本请求方法 // GET 请求 axios.get(/api/users).then(response > console.log(response.data)).catch(error > console.error…...

2024年阅读书单

《高效能人士的7个习惯》 史蒂芬.柯维 精进 《高效能人士的7个习惯》在读了一遍之后,记住非常深刻的就是积极主动和以终为始。 《软件架构》 Simon Brown 架构、技术 《软件架构》这本书比较抽象,若是工作时间比较少的人来读,可能觉得作者没写…...

Eclipse 内容辅助

Eclipse的内容辅助(Content Assist)功能是一项核心特性,它通过提供代码提示和自动完成建议来提高开发效率。这个功能能够在用户编写代码时自动显示可能的代码补全选项,如变量名、方法名、类名和关键字等。它还能根据用户的输入和上…...

【数学建模笔记】评价模型-基于熵权法的TOPSIS模型

视频课地址:https://www.bilibili.com/video/BV1eRyVYUEhg 本系列文章和课程一样,只使用Python实现,好久没玩数学建模了 国赛中不能再用TOPSIS,可以做辅助算法。 1. 算法原理 熵权TOPSIS方法是一种结合熵权法和TOPSIS的决策分析…...

小程序发版后,强制更新为最新版本

为什么要强制更新为最新版本? 在小程序的开发和运营过程中,强制用户更新到最新版本是一项重要的策略,能够有效提升用户体验并保障系统的稳定性与安全性。以下是一些主要原因: 1. 功能兼容 新功能或服务通常需要最新版本的支持&…...

数据分析思维(七):分析方法——群组分析方法

数据分析并非只是简单的数据分析工具三板斧——Excel、SQL、Python,更重要的是数据分析思维。没有数据分析思维和业务知识,就算拿到一堆数据,也不知道如何下手。 推荐书本《数据分析思维——分析方法和业务知识》,本文内容就是提取…...

SAP 01-初识AMDP(ABAP-Managed Database Procedure)

1. 什么是AMDP(ABAP-Managed Database Procedure) 1.)AMDP - ABAP管理数据库程序,是一种程序,我们可以使用SQLSCRIPT在AMDP内部编写代码,SQLSCRIPT是一种与SQL脚本相同的数据库语言,这种语言易于理解和编码。 将AM…...

.net core 线程锁,互斥锁,自旋锁,混合锁

线程锁、互斥锁、自旋锁和混合锁是多线程编程中的重要概念,它们用于控制对共享资源的访问,避免数据竞争和不一致性。每种锁有其特定的适用场景和特点。我们来逐一解释它们,并进行比较。 1. 线程锁(Thread Lock) 线程…...

大数据系列之:深入理解学习使用腾讯COS和COS Ranger权限体系解决方案,从hdfs同步数据到cos

大数据系列之:深入理解学习使用腾讯COS和COS Ranger权限体系解决方案,从hdfs同步数据到cos 对象存储COS对象存储基本概念COS Ranger权限体系解决方案部署组件COS Ranger Plugin部署COS-Ranger-Service部署COS Ranger Client部署 COSN 从hdfs同步数据到co…...

Uniapp Android 本地离线打包(详细流程)

一、简介 App 离线 SDK 暂时不支持 Kotlin,未来不清楚。 uniapp 提供了 云打包 与 本地打包 两种方案,云打包 需要排队且还有次数限制,本地打包 则就没有这些限制,而且会 本地打包 对开发 原生插件 有很大的帮助。 细节&#x…...

单片机常用外设开发流程(1)(IMX6ULL为例)

1.通过GPIO引脚控制led灯和key按钮 (1)设置多路复用的引脚(SW_MUX_CTL)也可以说是选择让引脚以哪种工作模式工作 (2)设置电器属性(SW_PAD_CTL)上拉、等等... (3)设置GPIO的方向&am…...

机器学习 学习知识点

机器学习 学习知识点 什么是消融实验(Ablation experiment)?num_step与batch_size的区别python glob.glob()函数认识python的条件判断之is not、is not None、is Nonetqdm介绍及常用方法softmax 激活函数。type_as(tesnor)Python OpenCV cv2.…...

深入了解PINN:物理信息神经网络(Physics-Informed Neural Networks)

1. 什么是PINN(物理信息神经网络)? 物理信息神经网络(PINN,Physics-Informed Neural Networks)是一类通过结合神经网络和物理方程的深度学习方法。其主要特点是将物理系统的约束条件(如偏微分方…...

人工智能知识分享第八天-机器学习_泰坦尼克生存预估线性回归和决策树回归对比案例

泰坦尼克生存预估案例 import pandas as pd from sklearn.model_selection import train_test_split from sklearn.tree import DecisionTreeClassifier from sklearn.metrics import classification_report import matplotlib.pyplot as plt from sklearn.tree import plot_t…...

封装/前线修饰符/Idea项目结构/package/impore

目录 1. 封装的情景引入 2. 封装的体现 3. 权限修饰符 4. Idea 项目结构 5. package 关键字 6. import 关键字 7. 练习 程序设计:高内聚,低耦合; 高内聚:将类的内部操作“隐藏”起来,不需要外界干涉&#xff1b…...

python中的装饰器

装饰器(Decorator)是 Python 中的一种语法糖,它允许你修改或增强函数或类的行为。下面详细解释: 基本概念 装饰器本质上是一个函数,它接受一个函数作为参数,并返回一个新的函数: def my_decor…...

HTMLElement、customElements及元素拓展

文章目录 HTMLElement 与 customElementscustomElements.define() 方法说明HTML 元素方法拓展 HTMLElement 与 customElements HTMLElement 概述 HTMLElement是一个接口&#xff0c;它表示所有HTML元素。几乎所有的HTML标签&#xff08;如<div>、<p>、<a>等…...

字玩FontPlayer开发笔记3 性能优化 大量canvas渲染卡顿问题

字玩FontPlayer开发笔记3 性能优化 大量canvas渲染卡顿问题 字玩FontPlayer是笔者开源的一款字体设计工具&#xff0c;使用Vue3 ElementUI开发&#xff0c;源代码&#xff1a; github: https://github.com/HiToysMaker/fontplayer gitee: https://gitee.com/toysmaker/fontpl…...

PyTorch 中 coalesce() 函数详解与应用示例

PyTorch 中 coalesce() 函数详解与应用示例 coalesce&#xff1a; 美 [ˌkoʊəˈlɛs] 合并&#xff1b;凝聚&#xff1b;联结&#xff0c;注意发音 引言 在 PyTorch 中&#xff0c;稀疏张量&#xff08;Sparse Tensor&#xff09;是一种高效存储和操作稀疏数据的方式。稀疏…...

计算机网络(第8版)第3章课后习题--透明传输

【3-11】 试分别讨论以下各种情况在什么条件下是透明传输&#xff0c;在什么条件下不是透明传 输。(提示&#xff1a;请弄清什么是“透明传输”,然后考虑能否满足其条件。) (1)普通的电话通信。 (2)互联网提供的电子邮件服务。 解 答 &#xff1a; 透明传输是指在数据传输…...

JavaScript 日期格式

在 JavaScript 中,日期格式可以通过 Date 对象进行操作和格式化。下面是一些常见的 JavaScript 日期格式及其示例: 1. ISO 8601 格式 ISO 8601 是一种标准的日期和时间表示方法,格式为 YYYY-MM-DDTHH:mm:ss.sssZ,例如: let date = new Date(); console.log(date.toISOS…...

云打印之拼多多打印组件交互协议

拼多多打印组件交互协议相关介绍如下&#xff1a; 1、打印组件下载地址 http://meta.pinduoduo.com/api/one/app/v1/lateststable?appIdcom.xunmeng.pddprint&platformwindows&subTypemain 2、socket连接端口 如果是http的话&#xff0c;端口是5000 socket new …...

Oracle数据库如何找到 Top Hard Parsing SQL 语句?

有一个数据库应用程序存在过多的解析问题&#xff0c;因此需要找到产生大量硬解析的主要语句。 什么是硬解析 Oracle数据库中的硬解析&#xff08;Hard Parse&#xff09;是指在执行SQL语句时&#xff0c;数据库需要重新解析该SQL语句&#xff0c;并创建新的执行计划的过程。这…...

浅谈棋牌游戏开发流程二:后端技术选型与基础环境搭建

一、前言&#xff1a;客户端只是台前&#xff0c;后端才是幕后“指挥中心” 在上一篇“客户端技术”中&#xff0c;我们聊到玩家看到的一切动作、动画、界面逻辑&#xff0c;都靠客户端去渲染和交互。但若没有后端的支撑&#xff0c;玩家点了“出牌”可能就像一拳打在空气里—…...

使用qiankun搭建微前端应用及踩坑

线上演示地址&#xff1a;React App 源码地址&#xff1a;https://github.com/Jiang-K-J/micro-app?tabreadme-ov-file &#xff08;帮忙点个小星星&#xff09; 主应用&#xff1a;react 18 子应用&#xff1a;vite vue3 子应用&#xff1a;react 18 安装 主应用 $ y…...

Windows 环境配置 HTTPS 服务实战

一、 环境准备 win10以上操作系统安装 Certbot申请阿里云\腾讯云域名安装 nginx 1.3以上版本 二、Certbot 安装及 SSL 证书生成 Certbot 是一个免费、开源工具&#xff0c;用于自动化在Web服务器上获取和更新SSL/TLS证书。它可以通过Let’s Encrypt服务获取免费的SSL/TLS证书…...

小程序租赁系统开发的优势与应用前景分析

内容概要 小程序租赁系统是一种新兴的数字化解决方案&#xff0c;旨在为用户提供更加便捷与高效的租赁服务。它通常包括一系列功能&#xff0c;如在线浏览、即时预定、支付功能以及用户反馈机制。这些系统在使用上极为友好&#xff0c;让用户能够轻松选择所需的商品或服务&…...

Redis(基础篇 + 实践篇 )

01 | 基本架构&#xff1a;一个键值数据库包含什么&#xff1f; Redis 作为一个内存数据存储系统&#xff0c;它的架构设计非常简洁&#xff0c;但功能非常强大。理解其核心架构对高效使用 Redis 至关重要。 客户端与服务器架构&#xff1a; 客户端通过 TCP 协议连接到 Redis …...

单片机-独立按键矩阵按键实验

1、按键介绍 按键管脚两端距离长的表示默认是导通状态&#xff0c;距离短的默认是断开状态&#xff0c; 如果按键按下&#xff0c;初始导通状态变为断开&#xff0c;初始断开状态变为导通 我们开发板是采用软件消抖&#xff0c;一般来说一个简单的按键消抖就是先读取按键的状…...

我用AI学Android Jetpack Compose之入门篇(1)

这篇我们先来跑通第一个Android Jetpack Compose工程&#xff0c;现在新版本的Android Studio&#xff0c;新建工程选择Empty Activity默认就会开启Jetpack Compose的支持&#xff0c;再次声明&#xff0c;答案来自 通义千问Ai 文章目录 1.用Android Jetpack Compose需要安装什…...

简单的生产数据库重连策略优化

简单的druid生产数据库重连策略优化 1. 需求 我们生产环境有一次在大量请求拥堵后&#xff0c;好多数据库操作都超时了&#xff0c;在此之后数据库的连接池不能正常的获取数据库连接了&#xff0c;我们确认了数据库服务是没有问题的&#xff0c;那么就是连接池的配置有问题&a…...

STM32-笔记37-吸烟室管控系统项目

一、项目需求 1. 使用 mq-2 获取环境烟雾值&#xff0c;并显示在 LCD1602 上&#xff1b; 2. 按键修改阈值&#xff0c;并显示在 LCD1602 上&#xff1b; 3. 烟雾值超过阈值时&#xff0c;蜂鸣器长响&#xff0c;风扇打开&#xff1b;烟雾值小于阈值时&#xff0c;蜂鸣器不响…...

2025-01-04 Unity插件 YodaSheet1 —— 插件介绍

文章目录 1 介绍2 工作原理2.1 ScriptableObject -> YadeSheetData2.2 YadeDatabase 存储多个 YadeSheetData 3 用途4 缺点5 推荐 1 介绍 ​ Yade 提供类似于 Excel 或者 Google Sheets 的表格编辑器&#xff0c;可以轻松地在 Unity 编辑器中 编辑&#xff0c;搜索&#xf…...

电子电气架构 --- 安全相关内容汇总

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…...

科研绘图系列:R语言单细胞数据常见的可视化图形

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理图1图2图3图4图5图6系统信息参考介绍 单细胞数据常见的可视化图形 因为本教程是单细胞数据,因此运行本画图脚本需要电脑的内存最少32Gb 加载…...

【顶刊TPAMI 2025】多头编码(MHE)之极限分类 Part 2:基础知识

目录 1 预热1.1 记号1.2 分类器计算过载问题 2 多头编码&#xff08;MHE&#xff09;2.1 标签分解2.2 多头组合&#xff08;Multi-Head Combination&#xff09; 论文&#xff1a;Multi-Head Encoding for Extreme Label Classification 作者&#xff1a;Daojun Liang, Haixia …...

Flink使用

Window下启动支持 下载或复制老版本的放在bin目录下即可&#xff1b; flink.bat echo off setlocalSET bin%~dp0 SET FLINK_HOME%bin%.. SET FLINK_LIB_DIR%FLINK_HOME%\lib SET FLINK_PLUGINS_DIR%FLINK_HOME%\pluginsSET JVM_ARGS-Xmx512mSET FLINK_JM_CLASSPATH%FLINK_LI…...

一种可复用的AI提效方案:AI点灯

在当今飞速发展的时代&#xff0c;AI技术正不断渗透到我们生活的各个层面&#xff0c;深刻改变着传统的工作方式和生活模式。面对这一重大变革&#xff0c;我们不能被动观望或抗拒&#xff0c;而应积极拥抱AI&#xff0c;将其作为成长的助力。只有与AI协同发展&#xff0c;才能…...

Django 模型

Django 模型 Django 模型是 Django 框架的核心组件之一,它用于定义应用程序的数据结构。在 Django 中,模型是 Python 类,通常继承自 django.db.models.Model。每个模型类代表数据库中的一个表,模型类的属性对应表中的字段。 1. 创建模型 创建 Django 模型非常简单。首先…...

【MySQL 探索者日志 】第二弹 —— 数据库基础

MySQL系列学习笔记&#xff1a; MySQL探索者日志__Zwy的博客-CSDN博客 各位于晏&#xff0c;亦菲们&#xff0c;请点赞关注&#xff01; 我的个人主页&#xff1a; _Zwy-CSDN博客 目录 1、MySQL服务器&#xff0c;数据库&#xff0c;表关系 2、MySQL登录连接服务器 3、MyS…...

【51单片机-零基础chapter1】

安装软件(配套的有,不多赘述) 1.管理员身份运行keil和破解软件kegen 将CID代码复制粘贴到 一定要管理员方式,不然会error 插入板子 我的电脑,管理 1.如果是拯救者,查看端口,如果没有则显示隐藏 2.苹果不知道,好像不可以 3.其他电脑在"其他设备找" (注:本人在校已…...

stm32的掉电检测机制——PVD

有时在一些应用中&#xff0c;我们需要检测系统是否掉电了&#xff0c;或者要在掉电的瞬间需要做一些处理。 STM32内部自带PVD功能&#xff0c;用于对MCU供电电压VDD进行监控。 STM32就有这样的掉电检测机制——PVD(Programmable Voltage Detecter)&#xff0c;即可编程电压检…...

电脑steam api dll缺失了怎么办?

电脑故障解析与自救指南&#xff1a;Steam API DLL缺失问题的全面解析 在软件开发与电脑维护的广阔天地里&#xff0c;我们时常会遇到各种各样的系统报错与文件问题&#xff0c;其中“Steam API DLL缺失”便是让不少游戏爱好者和游戏开发者头疼的难题之一。作为一名深耕软件开…...