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

深度学习笔记23-LSTM实现火灾预测(Tensorflow)

  •  🍨 本文为🔗365天深度学习训练营中的学习记录博客
  • 🍖 原作者:

一、前期准备

1.导入数据

import pandas as pd
import numpy as npdf_1 = pd.read_csv("D:\TensorFlow1\woodpine2.csv")
df_1import matplotlib.pyplot as plt
import seaborn as snsplt.rcParams['savefig.dpi'] = 500 #图片像素
plt.rcParams['figure.dpi']  = 500 #分辨率fig, ax =plt.subplots(1,3,constrained_layout=True, figsize=(14, 3))sns.lineplot(data=df_1["Tem1"], ax=ax[0])
sns.lineplot(data=df_1["CO 1"], ax=ax[1])
sns.lineplot(data=df_1["Soot 1"], ax=ax[2])
plt.show()dataFrame = df_1.iloc[:,1:]
dataFrame

编辑2.划分数据集

width_X = 8
width_y = 1X = []
y = []in_start = 0for _, _ in df_1.iterrows():in_end  = in_start + width_Xout_end = in_end   + width_yif out_end < len(dataFrame):X_ = np.array(dataFrame.iloc[in_start:in_end , ])X_ = X_.reshape((len(X_)*3))y_ = np.array(dataFrame.iloc[in_end  :out_end, 0])X.append(X_)y.append(y_)in_start += 1X = np.array(X)
y = np.array(y)X.shape, y.shapefrom sklearn.preprocessing import MinMaxScaler#将数据归一化,范围是0到1
sc       = MinMaxScaler(feature_range=(0, 1))
X_scaled = sc.fit_transform(X)
X_scaled.shapeX_scaled = X_scaled.reshape(len(X_scaled),width_X,3)
X_scaled.shapeX_train = np.array(X_scaled[:5000]).astype('float64')
y_train = np.array(y[:5000]).astype('float64')X_test  = np.array(X_scaled[5000:]).astype('float64')
y_test  = np.array(y[5000:]).astype('float64')X_train.shape

  

二、构建模型

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense,LSTM,Bidirectional
from tensorflow.keras        import Input# 多层 LSTM
model_lstm = Sequential()
model_lstm.add(LSTM(units=64, activation='relu', return_sequences=True,input_shape=(X_train.shape[1], 3)))
model_lstm.add(LSTM(units=64, activation='relu'))model_lstm.add(Dense(width_y))

三、编译模型

# 只观测loss数值,不观测准确率,所以删去metrics选项
import tensorflow as tf
model_lstm.compile(optimizer=tf.keras.optimizers.Adam(1e-3),loss='mean_squared_error')  # 损失函数用均方误差

四、训练模型

history_lstm = model_lstm.fit(X_train, y_train, batch_size=64, epochs=40, validation_data=(X_test, y_test),validation_freq=1)

  

五、模型评估及可视化

# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号plt.figure(figsize=(5, 3),dpi=120)plt.plot(history_lstm.history['loss']    , label='LSTM Training Loss')
plt.plot(history_lstm.history['val_loss'], label='LSTM Validation Loss')plt.title('Training and Validation Loss')
plt.legend()
plt.show()predicted_y_lstm = model_lstm.predict(X_test)                        # 测试集输入模型进行预测y_test_one = [i[0] for i in y_test]
predicted_y_lstm_one = [i[0] for i in predicted_y_lstm]plt.figure(figsize=(5, 3),dpi=120)
# 画出真实数据和预测数据的对比曲线
plt.plot(y_test_one[:1000], color='red', label='真实值')
plt.plot(predicted_y_lstm_one[:1000], color='blue', label='预测值')plt.title('Title')
plt.xlabel('X')
plt.ylabel('Y')
plt.legend()
plt.show()

   

from sklearn import metrics
RMSE_lstm=metrics.mean_squared_error(predicted_y_lstm,y_test)**0.5
R2_lstm=metrics.r2_score(predicted_y_lstm,y_test)
print("均方误差:%.5f" %RMSE_lstm)
print("R2:%.5f" %R2_lstm)

  

六、总结

  1. 数据探索与预处理

    • 数据结构:数据集包含 5948 条记录,特征列为 Time、Tem1、CO1、Soot1,其中 Time 为时间戳,Tem1 为目标变量。
    • 可视化分析:使用matplotlibseaborn绘制时间序列曲线,观察到 Tem1 在后期显著上升(最高达 295℃),CO1 和 Soot1 呈缓慢增长趋势,初步判断数据具备时间依赖特征。
    • 归一化处理:通过MinMaxScaler将特征值缩放到 [0, 1] 区间,确保模型收敛稳定性。
    • 滑动窗口构造样本:采用宽度为 8 的滑动窗口生成输入特征 X(包含连续 8 个时间步的 3 个特征),目标值 y 为第 9 个时间步的 Tem1,最终形成形状为(样本数, 8, 3)的输入数据。
  2. LSTM 模型构建

    • 网络架构
      • 第一层:双向 LSTM 层,64 个隐藏单元,激活函数 ReLU,返回序列以支持后续 LSTM 层。
      • 第二层:单向 LSTM 层,64 个隐藏单元,提取高层时间特征。
      • 输出层:全连接层,单神经元,直接输出预测温度值。
    • 编译配置:使用均方误差(MSE)作为损失函数,Adam 优化器(学习率 1e-3),聚焦回归任务的误差优化。
  3. 模型训练与验证

    • 数据集划分:前 5000 条样本为训练集,剩余 939 条为测试集。
    • 训练参数:批量大小 64,训练 40 个 epoch,每 epoch 后使用测试集验证(validation_freq=1)。
    • 训练结果
      • 训练损失稳定在 5-8 之间,但验证损失波动较大,可能存在过拟合或数据分布不均问题。
  4. 结果可视化与评估

    • 损失曲线:训练损失与验证损失趋势基本一致,但验证损失整体高于训练损失,表明模型泛化能力有待提升。
    • 预测对比:真实值与预测值的前 1000 个样本曲线显示,模型在趋势变化(如温度上升)时能捕捉大致走向,但在细节波动上存在偏差。
    • 定量指标
      • 均方根误差(RMSE):9.53,反映预测值与真实值的平均偏差。
      • 决定系数(R²):0.82162,表明模型解释了 82.162% 的目标变量变化,拟合效果中等偏上。

相关文章:

深度学习笔记23-LSTM实现火灾预测(Tensorflow)

&#x1f368; 本文为&#x1f517;365天深度学习训练营中的学习记录博客&#x1f356; 原作者&#xff1a; 一、前期准备 1.导入数据 import pandas as pd import numpy as npdf_1 pd.read_csv("D:\TensorFlow1\woodpine2.csv") df_1import matplotlib.pyplot as…...

单例模式(Singleton Pattern)详解

单例模式(Singleton Pattern)详解 1. 定义与核心目标 单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供全局访问点。核心目标: 控制实例数量:防止重复创建对象,节省资源。统一管理共享资源:如配置管理、数据库连接池、日志处理器等。2. 实现方式及对比 (…...

IntelliJ IDEA打开项目后,目录和文件都不显示,只显示pom.xml,怎样可以再显示出来?

检查.idea文件夹 如果项目目录中缺少.idea文件夹&#xff0c;可能导致项目结构无法正确加载。可以尝试删除项目根目录下的.idea文件夹&#xff0c;然后重新打开项目&#xff0c;IDEA会自动生成新的.idea文件夹和相关配置文件&#xff0c;从而恢复项目结构。 问题解决&#xff0…...

LongRefiner:解决长文档检索增强生成的新思路

大语言模型与RAG的应用越来越广泛&#xff0c;但在处理长文档时仍面临不少挑战。今天我们来聊聊一个解决这类问题的新方法——LongRefiner。 背景问题&#xff1a;长文档处理的两大难题 使用检索增强型生成&#xff08;RAG&#xff09;系统处理长文档时&#xff0c;主要有两个…...

Tcping详细使用教程

Tcping详细使用教程 下载地址 https://download.elifulkerson.com/files/tcping/0.39/在windows环境下安装tcping 在以上的下载地中找到exe可执行文件&#xff0c;其中tcping.exe适用于32位Windows系统&#xff0c;tcping64.exe适用于64位Windows操作系统。 其实tcping是个…...

Java + 鸿蒙双引擎:ZKmall开源商城如何定义下一代B2C商城技术标准?

在 B2C 电商领域持续革新的当下&#xff0c;技术架构的优劣成为决定商城竞争力的核心要素。ZKmall开源商城以其创新融合的 Java 与鸿蒙双引擎&#xff0c;为下一代 B2C 商城技术标准勾勒出全新蓝图&#xff0c;在性能、兼容性、拓展性等关键维度实现了重大突破。 一、Java 技术…...

华为云Flexus+DeepSeek征文|基于Dify平台tiktok音乐领域热门短视频分析Ai agent

前言 在当今数字化快速发展的时代&#xff0c;人工智能技术尤其是大模型的应用&#xff0c;正逐渐成为推动各行业创新与变革的关键力量。大模型凭借其强大的语言理解、生成和逻辑推理能力&#xff0c;为企业和开发者提供了全新的解决方案和应用可能性。然而&#xff0c;将这些…...

排序算法之线性时间排序:计数排序,基数排序,桶排序详解

排序算法之线性时间排序&#xff1a;计数排序、基数排序、桶排序详解 前言一、计数排序&#xff08;Counting Sort&#xff09;1.1 算法原理1.2 代码实现&#xff08;Python&#xff09;1.3 性能分析1.4 适用场景 二、基数排序&#xff08;Radix Sort&#xff09;2.1 算法原理2…...

HarmonyOS 开发之 —— 合理使用动画与转场

HarmonyOS 开发之 —— 合理使用动画与转场 谢谢关注!! 前言:上一篇文章主要介绍HarmonyOs开发之———UIAbility进阶:https://blog.csdn.net/this_is_bug/article/details/147976323?spm=1011.2415.3001.10575&sharefrom=mp_manage_link 在移动应用开发中,动画与转…...

网络流量分析 | NetworkMiner

介绍 NetworkMiner 是一款适用于Windows&#xff08;也适用于Linux/Mac&#xff09;的开源网络取证分析工具。它可被用作被动网络嗅探器/数据包捕获工具&#xff0c;也可被用于检测操作系统、会话、主机名、开放端口等&#xff0c;还能被用于解析pcap文件进行离线分析。点击此…...

EtherCAT转ProfiNet智能网关选型策略匹配S7-1500与CX5140通讯需求的关键参数对比

一、案例背景 随着新能源行业的迅猛发展&#xff0c;锂电池生产制造企业面临着日益激烈的市场竞争和不断增长的生产需求。某锂电池生产企业在扩大产能的过程中&#xff0c;新建了一条锂电池生产线。该生产线采用了倍福CX5140PLC作为EtherCAT协议主站&#xff0c;控制着涂布机、…...

适合学校使用的桌面信息看板,具有倒计时、桌面时钟、课程表、天气预报、自动新闻联播、定时关机、消息通知栏、随机点名等功能。

简介 教育时钟&#xff08;Education Clock&#xff09; 是一款致力于帮助学习者科学规划学习时间、提高学习效率的开源工具。由 Return-Log 团队开发&#xff0c;适配多平台&#xff08;Windows、Mac、Linux&#xff09;&#xff0c;界面简洁直观&#xff0c;操作便捷。通过设…...

兰亭妙微设计:为生命科技赋予人性化的交互语言

在医疗科技日新月异的今天&#xff0c;卓越的硬件性能唯有匹配恰如其分的交互语言&#xff0c;方能真正发挥价值。作为专注于医疗UI/UX设计的专业团队&#xff0c;兰亭妙微设计&#xff08;www.lanlanwork.com&#xff09;始终相信&#xff1a;每一处像素的排布&#xff0c;都应…...

redis数据结构-12(配置 RDB 快照:保存间隔和压缩)

配置 RDB 快照&#xff1a;保存间隔和压缩 Redis 持久性对于确保在服务器重启或发生故障时数据不会丢失至关重要。虽然 Redis 以其内存中数据存储而闻名&#xff0c;但它提供了将数据持久化到磁盘的机制。本章节重点介绍其中一种机制&#xff1a;Redis 数据库 &#xff08;RDB…...

SG7050VAN差分晶振,X1G0042810033,EPSON爱普生以太网6G晶振

产品简介 SG7050VAN差分晶振,X1G0042810033,EPSON爱普生以太网6G晶振&#xff0c;日本EPSON爱普生株式会社&#xff0c;进口晶振型号&#xff1a;SG7050VAN&#xff0c;编码为&#xff1a;X1G0042810033&#xff0c;频率为&#xff1a;156.250000 MHz&#xff0c;小体积晶振尺…...

nfs网络文件系统

nfs网络文件系统简介 NFS (Network File system ,网络文件系统)是由SUN公司研制的UNIX表示层协议&#xff0c;它允许网络中的计算机(不同的计算机、不同的操作系统)之间通过TCP/IP网络共享资源&#xff0c;主要在unix系列操作系统上使用。在NFS的应用中&#xff0c;本地NFS的客…...

西安前端面试

面试1 1.vue2和vue3的原理及区别 2.伪数组 3.对箭头函数怎么理解的 4.vue父子组件传值的几种方式 5.对Promise的理解 面试2 1.两个升序数组实现合并升序排序 2.数组拍平[3, [[7, [1, 5]], 4], 8, [6]] 面试3 1.let var const的区别&#xff0c;什么时候const能改变 …...

Linux常用命令42——tar压缩和解压缩文件

在使用Linux或macOS日常开发中&#xff0c;熟悉一些基本的命令有助于提高工作效率&#xff0c;tar 是 Linux 和 Unix 系统中用于归档文件和目录的强大命令行工具。tar 名字来自 "tape archive"&#xff08;磁带归档&#xff09;&#xff0c;最初用于将文件打包到磁带…...

AML 数据集

在公开的AML&#xff08;急性髓性白血病&#xff09;数据集中&#xff0c;有几个包含图像和多组学数据的资源&#xff0c;且部分带有生存状态和生存时间的标签。以下是一些相关数据集&#xff1a; 1. TCGA-AML (The Cancer Genome Atlas - Acute Myeloid Leukemia) 描述&…...

什么是Rosetta?

Apple 提供的「动态二进制翻译器」&#xff0c;让基于 Intel 的 x86_64 应用/二进制在 Apple Silicon&#xff08;M1/M2/M3&#xff0c;ARM 架构&#xff09;上运行 项目说明&#x1f9e0; Rosetta 2是 Apple 提供的一种「Intel → ARM 翻译器」&#x1f5a5;️ 功能让你的 AR…...

Redis解析

Redis解析 一、单线程模型 redis在io层面是多线程的&#xff0c;在数据处理层面是单线程的。 多线程一般用于&#xff1a; 关闭连接删除/淘汰内存网络IO 1.1 io多路复用 redis使用nio&#xff08;select、poll、epoll&#xff09;的方式处理socket 主线程负责接收建立连接…...

轨迹误差评估完整流程总结(使用 evo 工具)

roslaunch .launch rosbag play your_dataset.bag -r 2.0 ✅ 第二步&#xff1a;录制估计轨迹 bash 复制编辑 rosbag record -O traj_only.bag /aft_mapped_to_init 运行一段时间后 CtrlC 停止&#xff0c;生成 traj_only.bag 第三步&#xff1a;提取估计轨迹和真值轨迹为…...

服务器死机了需要检查哪些问题

在这个数字化的时代&#xff0c;服务器就像是我们信息世界的“大管家”&#xff0c;可要是它突然死机了&#xff0c;那可真是让人头疼。今天咱们就来聊聊&#xff0c;服务器死机了&#xff0c;到底需要检查哪些问题。 一、硬件问题 电源供应&#xff1a;检查电源是否稳定&…...

秒杀案例讲解

技术择型 Springboot 接收请求并操作 redis 和 mysqlRedis 用于缓存分布式锁Rocketmq 用于解耦 削峰&#xff0c;异步Mysql 用于存放真实的商品信息Mybatis 用于操作数据库的 orm 框架 架构图 spike-web&#xff08;接受用户秒杀请求&#xff09; pom.xml <?xml versio…...

Qt图表绘制(QtCharts)- 性能优化(13)

文章目录 1 批量替换代替追加1.1 测试11.2 测试21.3 测试3 2 开启OpenGL2.1 测试12.2 测试22.3 测试32.4 测试4 更多精彩内容&#x1f449;内容导航 &#x1f448;&#x1f449;Qt开发 &#x1f448;&#x1f449;QtCharts绘图 &#x1f448;&#x1f449;python开发 &#x1f…...

[逆向工程]DebugView捕获WPS日志?解析未运行WPS时Shell扩展加载的原因与解决方案(二十五)

[逆向工程]DebugView捕获WPS日志&#xff1f;解析未运行WPS时Shell扩展加载的原因与解决方案&#xff08;二十五&#xff09; 引言&#xff1a;一个“幽灵”般的日志问题 你是否在使用 DebugView 排查系统问题时&#xff0c;发现日志中频繁出现 WPS 相关模块&#xff08;如 k…...

【打破信息差】萌新认识与入门算法竞赛

阅前须知 XCPC萌新互助进步群2️⃣&#xff1a;174495261 博客主页&#xff1a;resot (关注resot谢谢喵) 针对具体问题&#xff0c;应当进行具体分析&#xff1b;并无放之四海而皆准的方法可适用于所有人。本人尊重并支持每位学习者对最佳学习路径的自主选择。本篇所列训练方…...

Ai Agent革命:不是流程驱动,而是模型为魂

前言&#xff1a;AI 智能体的未来&#xff1a;模型才是“主旋律”&#xff0c;工作流只是“插曲” 在 AI 智能体的未来舞台上&#xff0c;模型本身才是永恒的“主旋律”&#xff0c;而工作流不过是短暂的“插曲”。以 Manus 为例&#xff0c;其基于“预先编排好的提示词与工具…...

使用CherryStudio +SiliconFlow 部署独立的deepseek+知识库

deepseek知识库&#xff0c;独立的deepseek 首先我们先了解 CherryStudio&#xff1f;SiliconFlow&#xff1f; CherryStudio是一个支持多平台的AI客户端&#xff0c;我们致力于让更多人能够享受到AI带来的便利。 简单来说&#xff0c;它是一个能让普通人轻松用上AI 的「万能工…...

【leetcode】94. 二叉树的中序遍历

给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 示例 2&#xff1a; 输入&#xff1a;root [] 输出&#xff1a;[] 示例 3&#xff1a; 输入&#xff1a;root [1] 输出…...

OpenCV阈值处理完全指南:从基础到高级应用

引言 阈值处理是图像处理中最基础、最常用的技术之一&#xff0c;它能够将灰度图像转换为二值图像&#xff0c;为后续的图像分析和处理奠定基础。本文将全面介绍OpenCV中的各种阈值处理方法&#xff0c;包括原理讲解、代码实现和实际应用场景。 一、什么是阈值处理&#xff1…...

源码与二进制包区别

文章目录 源码包与二进制包的区别及选择建议概述核心区别对比1. 内容组成2. 安装复杂度3. 灵活性4. 依赖管理5. 安全性 选择建议适合使用**源码包**的场景&#xff1a;适合使用**二进制包**的场景&#xff1a; 总结 源码包与二进制包的区别及选择建议 概述 在常见的Linux安装…...

NAT转换和ICMP

NAT nat原理示意 nat实现 ICMP ICMP支持主机或路由器&#xff1a; 差错或异常报告网络探寻 2类icmp报文&#xff1a; 差错报告报文&#xff08;5种&#xff09; 目的不可达源抑制--拥塞控制超时&超期--TTL超时参数问题--问题报文丢弃重定向--不应该由这个路由器转发&a…...

No module named‘serial‘解决办法

jksjks-VMware-Virtual-Platform:~/gx$ sudopython3py.py Traceback (most recent call last): File "py.py",line 1, in <module> import serial.tools.list_ports ModuleNotFoundError: No module namedserial 这个报错意思是缺少serial模块 解决方法也很简…...

用 Gensim 实现 Word2Vec 古诗生成

向量操作。我们将借助它完成从语料处理到古诗生成的全流程。 6.1 环境搭建与库导入 首先安装 Gensim 及依赖库&#xff1a; bash pip install gensim numpy pandas 导入必要模块&#xff1a; python 运行 from gensim.models import Word2Vec # 核心词向量模型 from r…...

【图像生成1】Latent Diffusion Models 论文学习笔记

一、背景 本文主要记录一下使用 LDMs 之前&#xff0c;学习 LDMs 的过程。 二、论文解读 Paper&#xff1a;[2112.10752] High-Resolution Image Synthesis with Latent Diffusion Models 1. 总体描述 LDMs 将传统 DMs 在高维图像像素空间&#xff08;Pixel Space&#x…...

MapReduce Shuffle 全解析:从 Map 端到 Reduce 端的核心数据流​

一、Shuffle 的本质定位&#xff1a;MapReduce 的核心枢纽​ Shuffle 过程涵盖 MapTask 的后半程与 ReduceTask 的前半程&#xff0c;具体指从 map 方法输出到 reduce 方法输入之间的整个数据处理链路。它承担着三大核心使命&#xff1a;​ 数据分区&#xff1a;决定数据归属…...

架构与UML4+1视图

简单对比分析 架构41视图 架构41视图是由Philippe Kruchten提出的&#xff0c;用于描述软件系统的架构。它包括以下五个视图&#xff1a; 逻辑视图&#xff1a;描述系统的功能需求&#xff0c;展示系统的静态结构&#xff0c;通常使用类图、对象图等。开发视图&#xff1a;…...

nosqlbooster pojie NoSQLBooster for MongoDB

测过可用&#xff0c;注意 asar的安装使用报错改用 npx asar extract app.asar app 路径 C:\Users{computerName}\AppData\Local\Programs\nosqlbooster4mongo\resources npm install asar -g asar extract app.asar app 打开shared\lmCore.js 修改MAX_TRIAL_DAYS3000 修改…...

UI自动化测试中,一个完整的断言应所需要考虑的问题

在UI自动化测试中,一个完整的断言应全面覆盖用户界面(UI)的功能性、交互性和视觉正确性。以下是断言需要包含的核心内容及详细说明: 一、基础元素验证 存在性断言 验证元素存在于DOM中示例代码(Python + Selenium):assert driver.find_element(By.ID, "submit_btn&…...

电脑出故障驱动装不上?试试驱动人生的远程服务支持

在日常工作或学习中&#xff0c;驱动问题时常成为电脑用户的一大困扰。尤其是在更换硬件、重装系统、驱动冲突等情况下&#xff0c;许多用户往往手足无措&#xff0c;不知道从何下手。而“驱动人生”作为国内领先的驱动管理工具&#xff0c;一直以高效、便捷、智能著称。现在&a…...

机器学习第十五讲:决策树全面讲解:像玩“20个问题“游戏猜身份[特殊字符]

机器学习第十五讲&#xff1a;决策树全面讲解&#xff1a;像玩"20个问题"游戏猜身份&#x1f3ae; 资料取自《零基础学机器学习》。 查看总目录&#xff1a;学习大纲 关于DeepSeek本地部署指南可以看下我之前写的文章&#xff1a;DeepSeek R1本地与线上满血版部署&…...

基于Rust语言的Rocket框架和Sqlx库开发WebAPI项目记录(二)

参数结构体模块 在src目录下新建params文件夹 在params文件夹下依次新建req.rs、resp.rs、result_parse.rs、mod.rs 目录结构如下&#xff1a; project |—src |—params //封装参数结构体模块 |—req.rs //封装请求参数结构体 |—resp.rs //封装返回数据结构体 |—resu…...

Centos7系统(最小化安装)安装zabbix7版本详细文章、nginx源代码配置、php源代码、mysql-yum安装

zabbix官网链接下载zabbix源代码安装包 选择zabbix版本&#xff08;此文章使用zabbix7.0版本&#xff09; 安装之前由于是最小化安装centos7安装一些开发环境和工具包 文章使用国内阿里源 cd /etc/yum.repos.d/;curl -O https://mirrors.aliyun.com/repo/epel-7.repo;curl -…...

rocketmq 环境配置[python]

因本人是 python 开发&#xff0c;macbook 开发。windows 可以采取配置远程 linux 解释器或者 pycharm 专业版的 docker 解释器进行开发 M1 芯片 本地运行 rocketmq rocketmq Python 开源地址&#xff1a; https://github.com/apache/rocketmq-client-python 因为需要 linu…...

前端学习(4)—— JavaScript(基础语法)

目录 一&#xff0c;介绍 1.1 是什么 1.2 组成 1.3 书写形式 1.4 输入输出 二&#xff0c;变量的使用 2.1 基本用法 2.2 动态类型 三&#xff0c;基本数据类型 3.1 数字类型 3.2 字符串类型 3.3 布尔类型 3.4 未定义数据类型 3.5 空值类型 四&#xff0c;运算符…...

简单介绍C++中线性代数运算库Eigen

Eigen 是一个高性能的 C 模板库&#xff0c;专注于线性代数、矩阵和向量运算&#xff0c;广泛应用于科学计算、机器学习和计算机视觉等领域。以下是对 Eigen 库的详细介绍&#xff1a; 1. 概述 核心功能&#xff1a;支持矩阵、向量运算&#xff0c;包括基本算术、矩阵分解&…...

原生小程序+springboot+vue+协同过滤算法的音乐推荐系统(源码+论文+讲解+安装+部署+调试)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统背景 在数字音乐产业迅猛发展的当下&#xff0c;Spotify、QQ 音乐、网易云音乐等音乐平台的曲…...

[特殊字符] 如何优雅地避免 SQL 多表 LEFT JOIN 造成的笛卡尔积放大问题?

在实际项目开发中&#xff0c;我们经常需要从多个数据表中统计和聚合项目相关数据。但如果处理不当&#xff0c;多表 LEFT JOIN 容易造成 数据行数异常放大 的问题&#xff0c;也就是我们常说的“笛卡尔积放大”。 本文通过一个简单示例&#xff0c;直观讲清问题产生的原因&am…...

哈希表实现(1):

1. 哈希&#xff1a; 之前我们的红黑数的查找是由于左边小右边大的原则可以快速的查找&#xff0c;我们这里的哈希表呢&#xff1f; 这里是用过哈希函数把关键字key和存储位置建立一个关联的映射。 直接定址法&#xff08;函数函数定义的其中一种&#xff09;&#xff1a; 直…...