LSTM+改进的itransformer时间序列预测模型代码
代码在最后
本次设计了一个LSTM+基于差分多头注意力机制的改进的iTransformer时间序列预测模型结合了LSTM(长短期记忆网络)和改进版的iTransformer(差分多头注意力机制),具备以下优势:
-
时序特征建模能力:
- LSTM的优势:LSTM擅长捕捉时间序列中的长期依赖关系,对于周期性、趋势性变化的建模非常有效,能够处理复杂的时间序列模式,尤其是在非线性和动态变化的序列中。
- 多头注意力机制的优势:通过多头注意力机制,可以从不同的子空间并行地关注序列中的不同部分,有助于捕捉输入序列中的多尺度和多层次的依赖关系。差分注意力机制则能够进一步增强模型对序列中不同时间点间变化的敏感性。
-
增强模型的灵活性与适应性:
- 传统的iTransformer模型通过自注意力机制建模序列中的全局依赖,而引入差分多头注意力机制后,能够更加灵活地处理不同时间步之间的依赖关系,并通过差分操作提高模型对短期波动和突变的响应能力。
- 对于具有周期性波动或突发性变化的时间序列,差分操作能够有效减少长期趋势的干扰,使得模型能够专注于更加细粒度的变化。
-
减少噪声干扰:
- 传统的iTransformer模型在处理含有噪声的时间序列时,可能会因为自注意力机制对全局依赖关系的过度关注而被噪声干扰。差分多头注意力机制能够通过差分的方式抑制噪声的影响,从而提高预测的准确性。
-
多尺度学习:
- 多头注意力机制在不同的头部学习不同尺度的信息,这对于时间序列预测尤其重要,因为时间序列数据通常存在不同的时间尺度(例如日、周、月的周期性波动)。差分多头注意力能够根据数据的不同特征动态调整各个头部的关注点,从而获得多层次、多尺度的预测能力。
-
增强的预测性能:
- 结合LSTM的长短期记忆能力和差分多头注意力机制的灵活性,LSTM+差分多头注意力机制改进版的iTransformer能够更好地捕捉复杂时间序列数据中的非线性关系、周期性特征以及局部趋势变化,因此相比传统的时间序列预测模型(如LSTM或iTransformer单独使用)具有更好的预测精度和泛化能力。
1.LSTM
LSTM(Long Short-Term Memory,长短期记忆网络)是一种特殊的递归神经网络(RNN),设计用于解决标准RNN在处理长序列时的梯度消失和梯度爆炸问题。LSTM通过引入记忆单元和门控机制,可以在长时间跨度内保持和更新关键信息,从而在许多序列数据任务中表现出色。
LSTM的结构
LSTM的基本单元包括以下三个主要组件:
-
细胞状态(Cell State):
- 细胞状态是LSTM的核心部分,贯穿整个序列的数据流。它相当于一个直通通道,允许信息以最少的修改通过时间步长传播。细胞状态通过加法和乘法操作来控制信息的传递和遗忘,避免了梯度消失问题。
-
门控机制(Gates): LSTM通过三个门控来调节信息的流动:
- 遗忘门(Forget Gate):决定细胞状态中哪些信息需要被遗忘。它接受前一时间步长的隐藏状态和当前输入,通过一个Sigmoid激活函数输出一个0到1之间的值,控制信息是否被丢弃。
- 输入门(Input Gate):决定当前时间步长的新信息对细胞状态的更新程度。输入门与当前输入和前一隐藏状态结合,通过Sigmoid激活函数输出控制信号。
- 输出门(Output Gate):决定细胞状态中的哪些部分将作为隐藏状态输出,并传递到下一时间步长。输出门通过Sigmoid激活函数,结合当前输入和前一隐藏状态,生成下一步的隐藏状态。
-
隐藏状态(Hidden State):
- 隐藏状态是LSTM输出的主要内容,也是传递到下一个时间步长的信息。它包含了LSTM单元对当前时间步长输入和细胞状态的理解。
本文尝试使用傅里叶卷积改进itransformer,相结合进行时间序列的预测,作为一个创新性模型。
2.itransformer
基于Transformer模型的时序预测架构通常将同一时间步的不同变量编码成一个统一的多维temporal token,并通过注意力机制来建模不同时间步之间的时序相关性。然而,近年来线性时序预测模型重新崛起,展现出比Transformer模型更优的效果,促使人们反思当前基于Transformer的时序预测架构的一些局限性:
-
对于同一时间步的数据点,变量之间可能具有不同的物理意义,采集时间可能不一致,且尺度差异显著。将这些变量强行编码为统一的temporal token,不再区分不同的通道(channels),可能会导致多变量间的相关性被削弱,从而无法有效学习基于变量的高效表征,不适用于多变量时序预测任务。在某些数据集中,保持变量通道的独立性并考虑变量之间的互相关性是非常必要的。此外,由于变量之间存在时滞性,一个时间点的temporal token所包含的信息量有限,从这些token出发,可能不利于建模全局的时序相关性。
-
在建模时间方向上的长期依赖性时,随着历史窗口长度的增加,Transformer面临性能下降和计算量爆炸的问题。
基于这些思考,提出了一种全新的基于Transformer的时序预测架构,该架构并未改变Transformer的网络结构,而是重新定义了注意力机制和前馈网络的作用。iTransformer将不同的变量独立编码为各自的token,通过注意力机制来建模变量之间的相关性,同时通过前馈网络建模变量的时序相关性,从而获取更优的时序表征。
2.工作原理
图上部分是传统Transformer的运行机制,传统的Transformer是将同一时间戳下的各个变量赋予相同的Token值,会影响各个变量之间相关性的提取;同时当遇到时间不对齐事件时,这种方式也会引入噪声。传统的Transformer的self-attention和Embedding也会将时序信息打乱,这样也会对预测产生影响。基于此,本文提出iTransformer“倒置Transformer”,简而言之就是对时间序列采取一种“倒置视角”,将每个变量的整个时间序列独立地Embedding为一个token,并用注意力机制进行多元关联,同时利用FNN进行序列表示。
具体介绍可以看源码论文:https://arxiv.org/pdf/2310.06625
目前清华大学排列的不同任务预测效果,itransformer也排在前列,是一个相对优秀的模型。
3.差分注意力机制
原论文:https://arxiv.org/pdf/2410.05258
需要的同学可以看原论文,这里就不在详细介绍,很好理解。
Transformer 模型倾向于将注意力过多分配到与任务无关的上下文,导致注意力噪声问题。
在此工作中,作者提出了一种名为 DIFF Transformer 的新架构,使用差分注意力机制来强化对关键信息的关注,同时抑制噪声。具体而言,该机制通过计算两组独立的 Softmax 注意力分布之间的差值来实现降噪,从而促进稀疏注意力模式的形成。
实验表明,DIFF Transformer 在扩展模型规模和训练数据时的表现优于传统 Transformer,
并在长上下文建模、关键信息检索、减少幻觉(如问答和文本摘要任务中的错误生成)以及上下文学习等实际应用中表现出显著优势。
此外,该方法还能减轻模型激活值的离群问题,为量化和训练稳定性提供新的可能性。
通过更专注于相关上下文,DIFF Transformer 提高了模型的准确性和鲁棒性,
尤其是在处理长序列和复杂任务时。
核心创新:
引入了差分注意力机制,通过计算两个独立的 Softmax 注意力分布的差异来消除噪声,增强对关键信息的关注。
它确保模型将注意力集中在与任务相关的关键信息上,而不是被无关上下文干扰。
类似于降噪耳机中的差分放大器,该机制通过相减操作过滤掉公共噪声。
4.实验部分
部分实验代码
class Model(nn.Module):"""Vanilla Transformerwith O(L^2) complexityPaper link: https://proceedings.neurips.cc/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf"""def __init__(self, configs):super(Model, self).__init__()self.pred_len = configs.pred_lenself.output_attention = configs.output_attentionself.lstm = LSTM(input_size=configs.enc_in, hidden_size=configs.d_model, num_layers=3,batch_size=configs.batch_size)# Embeddingself.enc_embedding = DataEmbedding(configs.enc_in, configs.d_model, configs.embed, configs.freq,configs.dropout)# Encoderself.encoder = Encoder([EncoderLayer(AttentionLayer(FullAttention(False, configs.factor, attention_dropout=configs.dropout,output_attention=configs.output_attention), configs.d_model, configs.n_heads),configs.d_model,configs.d_ff,dropout=configs.dropout,activation=configs.activation) for l in range(configs.e_layers)],norm_layer=torch.nn.LayerNorm(configs.d_model))# Decoderself.dec_embedding = DataEmbedding(configs.dec_in, configs.d_model, configs.embed, configs.freq,configs.dropout)self.decoder = Decoder([DecoderLayer(AttentionLayer(FullAttention(True, configs.factor, attention_dropout=configs.dropout,output_attention=False),configs.d_model, configs.n_heads),AttentionLayer(FullAttention(False, configs.factor, attention_dropout=configs.dropout,output_attention=False),configs.d_model, configs.n_heads),configs.d_model,configs.d_ff,dropout=configs.dropout,activation=configs.activation,)for l in range(configs.d_layers)],norm_layer=torch.nn.LayerNorm(configs.d_model),projection=nn.Linear(configs.d_model, configs.c_out, bias=True))
数据集
数据集都可以,只要是时间序列格式,不限领域,类似功率预测,风电光伏预测,负荷预测,流量预测,浓度预测,机械领域预测等等各种时间序列直接预测。可以做验证模型,对比模型。格式类似顶刊ETTH的时间序列格式即可。
这里是时间列+7列影响特征+1列预测特征(也可以没有时间)
实验结果
这里我按照训练集80%测试集20%进行训练。
第一个是改进前的,第二个是改进后的,可以看出,效果有非常明显的提升,也证实了设计的可行性。
功能如下
1.多变量输入,单变量输出/可改多输出
2.多时间步预测,单时间步预测
3.评价指标:R方 RMSE MAE MAPE 对比图
4.数据从excel/csv文件中读取,直接替换即可。
5.结果保存到文本中,可以后续处理。
6.对比模型消融实验也准备好了,一步到位
代码带数据,注释清晰,直接一键运行即可,适合新手小白。
接运行,主页还有其他优质模型,或者需要在此基础缝合模型或者其他模型要求,直接发要求给博主就行。
6.补充
创新性非常高,保底3区以上完全够用,效果也不错。代码里也有pdf理论知识和注释方便理解,代码是在顶会源码的基础上解决了大量报错,删除多余部分并且添加功能,适合小白,注释清楚,没学过都能看懂。
继续改进:LSTM也可以改为其他创新卷积或者提取特征模块,例如可将LSTM改为TCN,CNN或者其他提取特征的方式,itransformer也可以替换为其他主预测模型,另外也可以改其他优化算法,继续提升创新。比如SSA,多元宇宙,VMd等等其他优化算法。如果需要也可以发要求私信博主。
模型预测效果优秀。结合其他模型或者其他效果都很不错。
7.源码以及详细视频讲解地址(适合小白)
代码地址:https://www.bilibili.com/video/BV1atqLY8EAz/?spm_id_from=333.999.0.0&vd_source=7dc3f07cab7883fe035e5ceef5206f80
相关文章:
LSTM+改进的itransformer时间序列预测模型代码
代码在最后 本次设计了一个LSTM基于差分多头注意力机制的改进的iTransformer时间序列预测模型结合了LSTM(长短期记忆网络)和改进版的iTransformer(差分多头注意力机制),具备以下优势: 时序特征建模能力&am…...
linux中 Systemd 和 cgroups 的关系详解
systemd 是 Linux 的一个初始化系统和服务管理器,它依赖于 Linux 内核的 cgroups(Control Groups)功能来实现对系统资源的高效管理。以下是对两者关系的详细解读: 1. 什么是 cgroups? cgroups 是 Linux 内核提供的一种…...
发布Apache2.4** 局域网无法访问
1。 防火墙关闭 或者 设置入站规则 2,查看httpd.conf 文件 设置配置 原 Listen 80 修改成 Listen 192.168.31.127:90 3.确保 本地IP 是否正确...
【JAVA】Java高级:多数据源管理与Sharding:在Spring Boot应用中实现多数据源的管理
一个电商平台可能需要一个数据库来存储用户信息,另一个数据库来存储订单信息,甚至可能还有一个数据库用于数据分析。这种情况下,如何在Spring Boot应用中实现多数据源的管理就显得尤为重要。 1. 多数据源管理的重要性 在实际应用中…...
Android 分词的两种方式
前言: 本文分别介绍了原生和三方(Jieba)两种分词方式的使用和注意事项 1、安卓原生BreakIterator分词 比较简单,但是效果不太行 /*** 功能:原生分词* 参数:text:需要分词的语句* 返回值:return…...
【开源免费】基于SpringBoot+Vue.JS中小型医院网站(JAVA毕业设计)
博主说明:本文项目编号 T 078 ,文末自助获取源码 \color{red}{T078,文末自助获取源码} T078,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...
数据结构代码归纳
1.线性表 线性表的顺序表示 定义与初始化 typedef struct SqList{ElemType data[MaxSize];//ElemType *data 开动态数组 int length; }Sqlist; void InitList(SqList &L){L.length0;//若静态数组//若动态数组 //L.data(ElemType*)malloc(sizeof(ElemType)*MaxSize); }…...
2024-金盾信安杯线上赛 WP
Misc 大赛宗旨 记事本打开,一眼零宽隐写 B 神工具一把梭,得到一串 base 编码 base64 解码得到 flag flag 值:flag{5d5555fa-1303-4b43-8eef-d6ea7c64c361} esab 根据题目 esab 可以发现这正是 base 的逆向,所以可以先逆向一下…...
iOS如何自定义一个类似UITextView的本文编辑View
对于IOS涉及文本输入常用的两个View是UITextView和UITextField,一个用于复杂文本输入,一个用于简单文本输入,在大多数开发中涉及文本输入的场景使用这两个View能够满足需求。但是对于富文本编辑相关的开发,这两个View就无法满足自…...
JavaWeb文件上传
文件上传总览 文件上传主要是指将本地文件(包括但不限于图片、视频、音频等)上传到服务器,提供其他用户浏览或下载的过程。在日常生活中,我们在很多情况下都需要使用文件上传功能,比如:发微博、发朋友圈等…...
C#实现1ms定时器不精准?如何实现一个高性能高精度的1ms定时器?(附完整示例Demo)
在C#日常开发中,我们经常需要使用定时器(Timer)进行周期性任务的执行。 例如,每隔1秒打印一条日志,或每隔100毫秒执行某个数据刷新逻辑。 但是,当我们尝试在C#中实现一个1毫秒(1ms)…...
LeetCode 3. 无重复字符的最长子串
题目链接:3. 无重复字符的最长子串 首先想到的就是暴力破解,直接两层循环遍历,因为它说求无重复,那就可以用 set 来存储遍历到的字符,如果遍历到了同样的字符(在 set 中存在),就直接跳出第二层循环&#x…...
深度解析 Ansible:核心组件、配置、Playbook 全流程与 YAML 奥秘(上)
文章目录 一、ansible的主要组成部分二、安装三、相关文件四、ansible配置文件五、ansible 系列 一、ansible的主要组成部分 ansible playbook:任务剧本(任务集),编排定义ansible任务集的配置文件,由ansible顺序依次执…...
记一次由docker容器使得服务器cpu占满密码和密钥无法访问bug
Bug场景: 前几天在服务器上部署了一个免费影视网站,这个应用需要四个容器,同时之前的建站软件workpress也是使用docker部署的,也使用了三个容器。在使用workpress之前,我将影视软件的容器全部停止。 再使用workpress…...
功能篇:JAVA实现记住我功能
在Java Web应用程序中实现“记住我”功能,通常涉及以下几个步骤: 1. 创建一个持久化的标识符(如一个令牌或哈希值),并将其与用户账户关联。 2. 将这个标识符保存到客户端的cookie中。 3. 在服务器端,当用户…...
实现 DataGridView 下拉列表功能(C# WinForms)
本文介绍如何在 WinForms 中使用 DataGridViewComboBoxColumn 实现下拉列表功能,并通过事件响应来处理用户的选择。以下是实现步骤和示例代码。 1. 效果展示 该程序的主要功能是展示如何在 DataGridView 中插入下拉列表,并在选择某一项时触发事件。 2.…...
2024年上半年网络工程师综合知识真题及答案解析
2024年上半年网络工程师综合知识真题及答案解析 以下不属于5G网络优点的是()A.传输过程中消耗的资源少,对设备的电池更友好B.支持大规模物联网,能够连接大量低功耗设备,提供更高效的管理C.引入了网络切片技术,允许将物理网络划分为多个虚拟网络D.更好的安全性,采用更…...
数合平台功能-管理角色
前一阵,有朋友问到,看咱们产品的功能描述很强大,但很多功能看不到。为此,基于数据建模产品最新版本,和大家一起串一下产品的功能和使用路径。本节重点说一下管理角色有哪些功能 一、功能清单 从上图中可以看到&#x…...
LVGL9 开关控件 (lv_switch) 使用指南
文章目录 前言主体1. **控件概述**2. **控件的样式和组成部分**3. **使用控件**改变开关状态 4. **事件处理**5. **按键支持**6. **示例代码** 总结 前言 lv_switch 是 LittlevGL 提供的一个开关控件,外观类似一个小型滑块,常用于实现开关功能ÿ…...
麒麟 V10 系统(arm64/aarch64)离线安装 docker 和 docker-compose
前期准备 查看操作系统版本,跟本文标题核对一下 uname -a查看操作系统架构 uname -m下载离线包 下载 docker 离线包 地址:https://download.docker.com/linux/static/stable/ 选择系统架构对应的文件目录:aarch64,我目前使用…...
独立ip服务器有什么优点?
网站的性能和安全性直接影响到用户体验和业务发,独立IP服务器作为一种主流的托管方式,因其独特的优势而受到许多企业和个人站长的青睐。与共享IP相比,独立IP服务器到底有哪些优点呢? 使用独立IP的用户不必担心与其他网站共享同一…...
oracle之用户的相关操作
(1)创建用户(sys用户下操作) 简单创建用户如下: CREATE USER username IDENTIFIED BY password; 如果需要自定义更多的信息,如用户使用的表空间等,可以使用如下: CREATE USER mall IDENTIFIED BY 12345…...
深入浅出:PHP中的数组操作全解析
文章目录 引言理解数组创建数组使用方括号使用array()函数 访问数组元素数值索引数组关联数组 遍历数组使用for循环使用foreach循环 添加和修改数组元素添加元素修改元素 删除数组元素删除单个元素删除整个数组 多维数组创建多维数组访问多维数组元素 常用数组函数获取数组长度…...
2024年12月7日历史上的今天大事件早读
1732年12月07日英国皇家大剧院在伦敦开幕 1798年12月07日清代诗人袁枚逝世 1889年12月07日第一个充气轮胎受专利保护 1916年12月07日劳合-乔治出任英国首相 1926年12月07日第一台电冰箱受美国专利保护 1937年12月07日南京保卫战正式打响 1941年12月07日日本偷袭珍珠港 1…...
pymysql模块详解
华子目录 简介安装pymysql连接对象常用方法游标对象常用方法数据库操作查改批量增加删 使用with语句总结 简介 pymysql是一个用于Python编程的第三方模块,用于连接和操作MySQL数据库。它提供了一个简单而强大的接口,使开发者能够轻松地在Python程序中执…...
计算机网络研究实训室建设方案
一、概述 本方案旨在规划并实施一个先进的计算机网络研究实训室,旨在为学生提供一个深入学习、实践和研究网络技术的平台。实训室将集教学、实验、研究于一体,覆盖网络基础、网络架构、网络安全、网络管理等多个领域,以培养具备扎实理论基础…...
WEB安全 PHP学习
PHP基础 PHP编码显示问题 header ("Content-type: text/html; charsetgb2312"); header("Content-Type: text/html;charsetutf-8"); windows需要使用gbk编码显示 源码是 <?php header ("Content-type: text/html; charsetgb2312"); sys…...
Redis高阶之容错切换
当一台主机master宕掉之后,他的从机会取代主机么? 查看集群状态 127.0.0.1:6385> cluster nodes c8ff33e8da5fd8ef821c65974dda304d2e3327f9 192.168.58.129:638216382 slave f6b1fd5e58df90782f602b484c2011d52fc3482d 0 1733220836918 1 connecte…...
构建高效OTA旅游平台的技术指南
1. 引言 在信息技术高速发展的今天,互联网深刻地改变了人们的旅行方式。传统的旅行社模式逐渐被在线旅游平台所取代,OTA(Online Travel Agency,在线旅行社)旅游平台应运而生,成为人们获取旅游信息、预订旅…...
数据结构 (25)图的存储结构
前言 数据结构中的图是一种用于表示多对多关系的结构,其存储结构主要有两种:邻接矩阵和邻接表。 一、邻接矩阵 定义:邻接矩阵是一个二维数组,用于存储图中各个顶点之间的关系。数组的行和列分别代表图中的顶点,元素的值…...
【C语言】fscanf 和 fprintf函数
【C语言】fscanf 和 fprintf函数 文章目录 [TOC](文章目录) 前言一、定义二、代码例程三、实验结果四、参考文献总结 前言 使用工具: 1.编译器:DEVC 2.C Primer Plus 第六版-1 提示:以下是本篇文章正文内容,下面案例可供参考 一…...
C#调用c++创建的动态链接库dll文件
在C#中调用外部DLL文件是一种常见的编程实践,它具有以下几个重要意义:1.代码重用;2.模块化;3.性能优化;4.安全性;5.跨平台兼容性;6.方便更新和维护;7.利用特定技术或框架;…...
【数字电路与逻辑设计】实验一 序列检测器
文章总览:YuanDaiMa2048博客文章总览 【数字电路与逻辑设计】实验一 序列检测器 一、实验内容二、设计过程(一)作出状态图或状态表(二)状态化简(三)状态编码 三、源代码(一ÿ…...
沈阳工业大学《2024年827自动控制原理真题》 (完整版)
本文内容,全部选自自动化考研联盟的:《沈阳工业大学827自控考研资料》的真题篇。后续会持续更新更多学校,更多年份的真题,记得关注哦~ 目录 2024年真题 Part1:2024年完整版真题 2024年真题...
Javascript Clipper library, v6(介绍目录)
1.老祖宗C#版的Clipper2 Clipper2库可以对简单和复杂的多边形执行交集、并并、差分和异或布尔运算。它还执行多边形偏移 github地址:GitHub - AngusJohnson/Clipper2: Polygon Clipping and Offsetting - C, C# and Delphi 2.目前的移植版本 基于C#版的移植版本…...
uniapp+vue3+ts请求接口封装
1.安装luch-request yarn add luch-requestnpm install luch-request2.新建文件src/utils/request.ts 需要自己修改config.baseURL和token(获取存储的token) // import HttpRequest from luch-request; import type { HttpRequestConfig, HttpRespons…...
Spring Boot中的@GetMapping注解可以用于处理HTTP GET请求,并且可以接收对象参数,详细示例
下面内容来自Ai回答,经过亲自验证,正确 Spring Boot中的GetMapping注解可以用于处理HTTP GET请求,并且可以接收对象参数。 接收对象参数的基本方式 在Spring Boot中,可以通过GetMapping注解接收对象参数,这通…...
详解Vue设计模式
详解 vue 设计模式 Vue.js 作为一个流行的前端框架,拥有许多设计模式,这些设计模式帮助开发者更好地组织和管理代码,提升代码的可维护性、可扩展性和可读性。Vue 设计模式主要体现在以下几个方面: 1. 组件化设计模式 (Compon…...
webpack 题目
文章目录 webpack 中 chunkHash 和 contentHash 的区别loader和plugin的区别?webpack 处理 image 是用哪个 loader,限制 image 大小的是...;webpack 如何优化打包速度 webpack 中 chunkHash 和 contentHash 的区别 主要从四方面来讲一下区别&…...
Mysql - 存储引擎
一 MYSQL体系结构简介 MYSQL的体系结构可以分为四个层级,从上往下依次为: 1. 连接层: 最上层为客户端以及一些连接服务,包含连接操作,例如JAVA想要与MYSQL建立连接就需要用到JDBC,PHP语言与Python也可以连接到MYSQL&am…...
【实战教程】使用YOLOv8 OBB进行旋转框目标检测的数据集定义与训练【附源码】
《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...
怎么实现邮件营销自动化?
邮件营销能够出色地帮助我们与客户建立良好关系。无论是新客户还是老客户,都可以通过邮件来达成较为良好的客户关系。然而,从消费者的角度来看,每个人都有自己独特的习惯和特点,没有人希望收到千篇一律、营销意味过重的邮件。因此…...
华为服务器使用U盘重装系统
一、准备工作 下载官方系统(注意服务器CPU的架构是x86-64还是aarch64,不然可能报意想不到的错)制作启动U盘(下载rufus制作工具,注意文件系统选FAT32还是NTFS) 二、安装步骤 将U盘插入USB接口重启服务器…...
空安全编程的典范:Java 8中的安全应用指南
文章目录 一、Base64 编码解码1.1 基本的编码和解码1.2 URL 和文件名安全的编码解码器1.3 MIME Base64编码和解码 二、Optional类三、Nashorn JavaScript 一、Base64 编码解码 1.1 基本的编码和解码 Base64 编码: 使用 Base64.getEncoder().encodeToString(origin…...
深入解析 Loss 减少方式:mean和sum的区别及其在大语言模型中的应用 (中英双语)
深入解析 Loss 减少方式:mean 和 sum 的区别及其在大语言模型中的应用 在训练大语言模型(Large Language Models, LLM)时,损失函数(Loss Function)的处理方式对模型的性能和优化过程有显著影响。本文以 re…...
opencv4.8 ubuntu20.04源码编译 安装报错记录
-- IPPICV: Downloading ippicv_2021.8_lnx_intel64_20230330_general.tgz from https://raw.githubusercontent.com/opencv/opencv_3rdparty/1224f78da6684df04397ac0f40c961ed37f79ccb/ippicv/ippicv_2021.8_lnx_intel64_20230330_general.tgz make -j8 到这咋不动了 代理配…...
16-03、JVM系列之:内存与垃圾回收篇(三)
JVM系列之:内存与垃圾回收篇(三) ##本篇内容概述: 1、执行引擎 2、StringTable 3、垃圾回收一、执行引擎 ##一、执行引擎概述 如果想让一个java程序运行起来,执行引擎的任务就是将字节码指令解释/编译为对应平台上的本地机器指令才可以。 简…...
在 Spring Boot 中使用 JPA(Java Persistence API)进行数据库操作
步骤 1: 添加依赖 在 pom.xml 文件中添加相关依赖: <dependencies><!-- Spring Boot Starter Web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><…...
【sqlserver】mssql 批量加载数据文件 bulk copy使用
参考文章: Using bulk copy with the JDBC driver SqlServer数据批量写入 SqlServer批量插入数据方法–SqlBulkCopy sqlserver buld copy需要提供,数据文件的对应表的元数据信息主要的字段的位置、字段的名称、字段的数据类型。 执行bulk load时候不一…...
卷积神经网络(CNN)的层次结构
卷积神经网络(CNN)是一种以其处理图像和视频数据的能力而闻名的深度学习模型,其基本结构通常包括以下几个层次,每个层次都有其特定的功能和作用: 1. 输入层(Input Layer): 卷积神经网…...