背景
近来xLSTM比较热门,网上也有很多用xLSTM结合Transformer的示例,也就是将xLSTM放到了Encoder里面。这也是合理的,因为Encoder本身就就编码的过程,放入xLSTM理论上能提升信息提取能力。
再有就是,Transfomer接收的输入是[批大小,序列长度,维度]。但对于一维序列,这个维度就是1,总觉得不大好,于是把原始序列折叠成了序列长度x维度进行输入。
以下是完整介绍:
程序在闲鱼上,价格19。原谅我没免费提供源代码- -确实是花了不少时间整理的。
【闲鱼链接】:https://m.tb.cn/h.T21o8Ez?tk=LFxn3GBqJyA HU9196
如果链接失效,可在闲鱼搜索:耐心的等待5283,然后点“用户”即可找到个人主页下的程序
Python,Pytorch中xLSTM-Transformer进行序列预测源程序。此程序是将xLSTM融入到了Encoder层中,增加创新性。包含所有的源代码和数据,程序能够一键运行。源程序是用jupyterLab所写,建议分块运行。也整理了.py格式供pyCharm等运行。
工作是进行序列预测,即使用12个值,来预测1个值。使用前建议先了解Transformer的大致结构:Encoder、Decoder、Embedding等。
具体工作如下:
1、加载数据。数据为Excel文件,525行,13列。即525个样本,前12列为数据,第13列为预测值(标签)。原序列长度为12,预测步长为1。为了符合Transformer的输入,将原始的1x12序列强行调整为3x4的格式,即序列长度=3,维度=4。这一步对于Transformer非常重要。依次划分70%、10%、20%作为训练集、验证集和测试集。
2、构建Encoder、Decoder类,Encoder中包含xLSTM,也使用了Embedding。然后构建Transformer。用summary显示网络结构。
3、训练,计算loss。建议用GPU训练,CPU可能比较慢。
4、测试,绘图。
注:xLSTM直接当成一个层来用即可,写在了单独的.py文件里,也是从网上找来的,原理不是特别懂。有基础的话容易替换数据、或改为分类模型。可有偿帮忙替换数据。整理不易,价格低廉。本程序完全由本人整理并于2024.11.29在淘天知识产权进行了备案,如有盗版将追究。