- 博客(44)
- 收藏
- 关注
原创 代码编写规范
1.文件级定义(或者全局函数)之间隔两个空行,类方法之间隔一个空行。2.3关键字参数或参数默认值里的等号前后不加空格。2.1逗号、分号、冒号前不加空格,后边加一个空格。3.类(包括异常)名使用首字母大写驼峰式命名。2.2所有二元运算符前后各加一个空格。
2024-04-13 16:46:36
281
原创 DataLoader类
**dataset**:数据集对象,通常是 `torch.utils.data.Dataset` 类的子类对象,用于包装需要加载的数据。- **drop_last**:一个布尔值,表示是否丢弃最后一个不完整的批次,当数据总数不能被 batch_size 整除时使用。- **collate_fn**:用于自定义批处理方式的函数,通常在需要对每个批次进行一些自定义处理时使用。- **num_workers**:用于数据加载的子进程数量。- **batch_size**:每个批次中包含的样本数量。
2024-04-10 16:39:52
273
原创 A Survey for LLM
一、背景介绍我们关注大模型中的两个主流:大语言模型和预训练的基础模型。语言建模是许多自然语言处理任务的基础,而大语言模型(LLMs)的初衷是为了提高语言建模的性能。与传统的神经语言模型(NLMs)和小型预训练的语言模型(PLMs)相比,LLMs以其在解决各种复杂任务时的突发能力、上下文学习能力而为人所知,并重塑了我们使用AI的方式。随着多模态大语言模型(MLLMs)的发展,LLMs的下游任务远远超出了传统的自然语言范围,小型PLMs无法轻易解决这些问题。
2024-04-05 17:09:17
834
原创 AutoTimes: Autoregressive Time Series Forecasters via Large Language Models
其中,W1 和 W2 是权重矩阵,b1 和 b2 是偏置向量,activation 是非线性激活函数,x 是输入特征向量,h 是隐藏层输出特征向量,y 是最终输出特征向量。我们的方法通过下一个令牌预测建立了时间序列的类似令牌化,采用相同的自回归生成进行推理,并冻结LLM的块以充分利用固有的令牌转换。- 多层感知机适用于处理更复杂的非线性数据,通过多个非线性激活函数可以学习到数据中更复杂的非线性特征。2.表现出显著的方法通用性,并且可以通过更大的LLM,额外的文本或时间序列作为指令来实现增强的性能。
2024-03-29 20:31:10
614
原创 ARIMA
当自相关系数和偏自相关系数都没有收敛于0,说明这个时间序列不能纯用低阶的AR模型或者纯用低阶的MA模型来解释,需要低阶的AR和低阶的MA模型混合来解释。所以我们对这个高阶AR模型做分解,分解出一个低阶的AR模型和另一个特殊的高阶AR模型,其中分解出来的高阶AR模型恰好等价于一个低阶的MA模型。于是我们就可以用低阶的AR模型和低阶的MA模型来描述这个时间序列了,这就是ARMA模型。MA模型的阶数看自相关系数,AR模型的阶数看偏自相关系数。同样的,如果偏自相关系数p阶以后都趋于0,说明是AR(p)模型;
2024-03-25 11:04:10
383
原创 Autoformer: Decomposition Transformers withAuto-Correlation for Long-Term Series Forecasting
自相关(Auto-Correlation)是时间序列分析中一种重要的统计工具,用于检测序列中的自身相关性。Series Decomp Block使用传统的decomposition操作可以将序列分解为trend-cyclical和seasonal parts两个部分,这两个一个是可以反应短期的波动,另一个则反应长期的季节性。2.此外,我们设计了一种高效的自相关机制,在序列级别上进行相关性发现和信息聚合,这与以前的自注意家族形成了鲜明的对比。
2024-03-23 20:54:50
591
原创 DLinear:Are Transformers Effective for Time Series Forecasting?
DLlinear是Autoformer和具有线性层的FEDformer中使用的分解方案的组合。通过显式处理趋势,当数据中有明显的趋势时,DLlinear增强了普通线性的性能。当数据集中存在分布偏移时,为了提高LTSF线性的性能,NLlinear首先用序列的最后一个值减去输入。(2)iterated multi-step (IMS) forecasting:基于Transformer的长序列预测,因为执行的都是自回归策略(一个点一个点预测),导致会有显著的误差累积效应。
2024-03-21 19:27:59
293
原创 Transformer:Embedding与位置编码
比如单词 I love you 对于love来进行位置编码。在Transformer中使用的是正弦余弦。把文字变成数字,并让数字表示文字的语意。针对词向量的位置编码,
2024-03-20 16:13:36
276
原创 Informer: Beyond Efficient Transformer for Long SequenceTime-Series Forecasting && 常见项目代码结构解读
一、困难1.Transformer结构无法直接运用在LSTF, 因为存在二次时间复杂性、高内存使用率和编码器-解码器架构的固有限制等问题提出:模型总体结构:注意力机制self-attention:了解哪些词对这个词是重要的,词与词之间彼此的关系➡️词向量求点积,当两个词向量点积为0,表示两个词向量是垂直的,彼此间毫无关系;在一个方向,点击为1,完全相关➡️Q K 表示对一个句子从不同维度的理解,(Q*K得到词与词之间的相关性)*原始的语义V = 权重 * 原始的语意。
2024-03-20 15:34:54
380
原创 TIMESNET: TEMPORAL 2D-VARIATION MODELINGFOR GENERAL TIME SERIES ANALYSIS
其次,对于每个周期,我们发现每个时间点的变化不仅受其相邻区域的时间模式的影响,而且与相邻周期的变化高度相关。2.单个时间点包含的信息较少,所以我们更多关注的是时间序列的变化性质,但现实世界时间序列的变化总是涉及复杂的时间模式,其中多个变化(如上升、下降、波动等)相互混合和重叠,这使得时间变化建模极具挑战性。将1d时间序列转换为一组基于多个周期的2d张量,这种变化可以将周期间变化和周期内变化分别嵌入到2d张量的行和列中。所以,我们找到信号幅值最大的那个正弦波的频率,作为函数的周期。1.发掘时间序列的周期性。
2024-03-19 19:32:47
692
原创 Python基础知识+WebAPI
date解释:1.series索引列变普通列:当您使用时,它已经将原来的Series对象转换成了一个 DataFrame,并将原来的索引(date)转换成了一个普通列。这一步已经完成了您想要的转换。2.重新赋给列名:Python的json模块并不能直接处理DataFrame对象。Pandas DataFrame对象并不是Python内置的JSON可序列化类型,因此你无法直接使用函数来序列化它。
2024-03-18 22:23:02
1108
原创 GNN/GCN自己学习
输入的格式不需要固定,是随意的,没有CV NLP的resize等固定大小之说。比如说人的社交网络,随时会变。以图像为例,每个像素点周围都有邻居,用邻接矩阵表示哪些点之间有关系,邻接矩阵A是对称的,也可以不对称。实际是2xN, (source , target),要不然维护一个NxN太多了。整合特征(embedding),做重构。五、每个点特征更新(聚合 更新)计算特征,之后传入神经网络。你的度和我的度都要考虑进来。更新时肯定要考虑他们的邻居。优势:可以做半监督学习。使用度矩阵来做个平均。
2024-03-13 16:45:27
418
原创 代码复现错误
张量可以是多维的,可以是标量(0维张量)、向量(1维张量)、矩阵(2维张量)甚至更高维度的数组。在深度学习中,神经网络的输入、输出和参数通常都表示为张量,通过张量之间的运算来实现神经网络模型的训练和推理过程。较小的批量大小可能会导致更频繁的参数更新,这有助于加快模型的训练速度。对于某些模型和数据集,较小的批量大小可能导致训练过程的不稳定性,包括震荡、收敛速度下降等问题。一些研究表明,通过减小批量大小,模型可能会更好地泛化到新的数据上,从而提高模型的性能。减小batch大小,可以减小每一批次的内存使用。
2024-03-04 18:33:46
1037
原创 传统时间预测:Deep Uncertainty Quantification: A Machine Learning Approachfor Weather Forecasting
这种方法通常需要更大规模的数据集和更复杂的模型来学习数据的复杂特征和模式,但同时也能够减少人工设计特征的工作量,提高系统的整体性能。在深度学习和统计建模中,我们通常希望模型能够给出单值的预测结果,同时也能够估计这个预测结果的不确定性,这对于提高模型的可靠性和解释性非常重要。:在深度学习模型中,可以通过使用不同的损失函数(如均方误差损失和KL散度损失)、集成学习(如dropout、贝叶斯神经网络集成)或者将不确定性作为额外的输出来估计模型的不确定性。这样可以在进行单值预测的同时获得不确定性的估计。
2024-02-22 12:17:24
875
原创 Urban Region Embedding with Adaptive Region Correlation Discovery
一、Abstact城市计算领域的一个最新趋势是利用多模态数据进行城市区域嵌入,这可以进一步扩展到各种下游城市感知任务。许多先前的研究依赖于多图嵌入技术,并遵循两个阶段的范式:首先基于固定区域相关性构建K最近邻图,然后在后验阶段将多视图信息融合以学习区域表示。这种方法无法发现区域之间微妙的相关性,因为预先确定的图边权重难以捕捉到这种相关性。在本文中,我们通过构建可学习权重的区域完全图形成了一种新的一阶段范式,并提出了一种名为Region Embedding method with Adaptive reg
2024-02-19 18:26:30
873
原创 LLM4TS文献阅读:One Fits All:Power General Time Series Analysis by Pretrained LM
与NLP和CV中的统一模型可以执行不同的任务不同,特殊设计的方法在每个时间序列分析任务中仍然占主导地位,如分类、异常检测、预测和少镜头学习。阻碍对时间序列分析的预训练模型的开发的主要挑战是缺乏大量的训练数据。我们的结果表明,在自然语言或图像上的预先训练的模型可以在所有主要的时间序列分析中导致可比的或最先进的性能。除了在预先训练过的LM中使用的层范数外,我们还加入了一个简单的数据归一化块,反向实例范数Kim等人(2022),以进一步促进知识转移。我们的体系结构保留了预训练模型中的位置嵌入层和自我注意块。
2024-02-19 18:26:06
755
原创 大模型微调(fine-tunning)
用好大模型的第一个层次,是掌握,第二个层次,是,这也是今天这篇文章的主题。补充:prompt engineeringPrompt Engineering(提示工程)是一种技术方法,用于设计和构建基于语言模型的对话系统。它的目标是通过设置合适的提示(prompt)或问题,来引导模型生成期望的回复或响应。在对话系统中,通常需要指定用户的输入(prompt)以及期望的输出。Prompt Engineering 的思想是利用这些输入和输出的组合来设计一个能够产生符合预期回复的模型。
2024-02-18 15:03:34
1432
1
原创 patchTST
2.大大减少了馈送到Transformer编码器的标记数量。在这里,每个patch都变成了输入到Transformer的一个token。这样,我们可以将token的数量从L减少到大约L/S。1.模型可以通过观察一组时间步骤而不是单个时间步骤来提取局部语义含义。
2024-02-07 22:32:13
848
原创 LLM4TS文献阅读 : TIME-LLM: TIME SERIES FORECASTINGBY REPROGRAMMING LARGE LANGUAGE MODELS
Patch(补丁):对于时间序列数据,"patch" 可能指的是数据序列中的局部区域,例如一小段连续的时间窗口或者一组连续的时间点。Batch(批量):在训练时间序列模型时,"batch" 意味着同时处理的一组时间序列样本。例如,在循环神经网络(RNN)的训练过程中,我们通常会将多个时间序列样本组合成一个批量,然后一起输入到模型中进行训练,以提高训练效率。因此,以时间序列为主题,"patch" 可能表示时间序列中的局部区域或子序列,而 "batch" 则表示在训练模型时同时处理的一组时间序列样本。
2024-02-06 18:17:53
1648
原创 论文&实验 Large Language Models AreZero-Shot Time Series Forecasters
通过将每个数字视为一个具有 B 个可能类别的分类问题,可以将模型的输出概率分布视为一种层次 softmax 分布,其中每个数字的概率分布是由前面的数字决定的。为了将离散的概率分布转化为连续的概率密度分布,可以将输出的每个数字分配到一个离散的 bin 中,然后在每个 bin 上放置一个均匀分布,最终得到一个混合的、连续的概率密度分布。通过这种方式,即使使用离散的数字表示,也可以实现高效、精确和灵活的连续概率密度建模。将时间序列编码为一串数字,可以将时间序列预测转换为文本的下一个token预测。
2024-01-31 23:07:05
1217
1
原创 LLaMa2(个人学习)
整理自知乎Llama 2详解 - 知乎和b站Llama 2 模型结构解析_哔哩哔哩_bilibili1.promt提示阶段:输入的这一串文本,进去之后模型内部会干什么事情,为生成阶段生成第一个token2.生成阶段:收到提示,来进行回复eg.1.prompt输入:今天星期几Tokennization:将其切分为单词或字符,形成Token序列。之后再将文本映射为模型可理解的输入形式(将文本序列转换为语料库的整数索引序列)Embedding:单个索引(每个token)转换为一个实数向量,称为Embedding
2024-01-16 21:43:46
1001
原创 含有字符串数组的结构体的赋值、输入、字符串比较
1.之所以用到结构体,是因为一个物体有多个属性,此时使用结构体简单些2.对字符串进行整体操作时,需要添加头文件#include<string.h>1).字符串赋值需要使用strcpy( char * dst, const char * src )函数,即把后者的值赋予前者2).字符串比较需要使用int strcmp(char *str1,char * str2)函数,相等返回0,前者大返回1,后者大返回-1下面是笔者认为比较经典的题有四个候选人zhao,qian,sun,
2022-05-28 17:04:33
1895
转载 C语言传递二维数组的方法之把参数声明为指向指针的指针
#include <stdio.h>void foo(int **a, int m, int n) { int i = 1; int j = 1; printf("a[%d][%d]=%d\n", i, j, a[i][j]);}int main() { int a[2][3] = { {1,2,3}, {4,5,6} }; int * p[3]; p[0] = a[0]; p[1] =.
2022-05-15 01:03:25
135
原创 C语言数组的结尾字符
对于整数型数组来说,结尾字符为整数对于字符型数组来说,结尾字符为\0,占一个空间。所以当输出字符串数组时,若要整体输出(printf("%s",s)),则要在数组末尾添上\0,否则会将数组后面未定义的空间也输出举个简单的代码样例:用递归法将一个非负整数n转换成逆序的字符串。例如:输入483,应输出字符串"384"。n的位数不确定,可以是任位数的整数。输入:输入非负整数n。(n的位数不超过int上限)输出:输出一个字符串。【输入输出样例】输入:483输出:384注意
2022-04-19 20:06:40
14863
3
原创 将以-1结束的整数存储到字符型数组中去
代码如下:#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<math.h>void DigiTran(int k, char res[]);int main(){ int a,b; scanf("%d", &a); if (a == -1); else { for (; a != -1;) { char res[100]; int arr_length = 0...
2022-04-16 15:02:53
413
1
原创 C语言函数如何正确的输入和返回数组(一维和二维)
对于一维数组而言有两种方法:1.函数外(主函数内)初始化数组,相当于已经分配好了一块固定的内存,然后将其地址传入函数,经过一番操作,再将地址返回。2.函数内创建静态局部数组,操作后再返回。因为静态数组的生命周期贯穿整个程序。具体连接如下:https://blog.csdn.net/q54188p/article/details/113355998对于二维数组而言:对于所有的数组而言,不管是几维的,存储的时候都是一维的。比如二维数组,存储的 时候就是把每一行接起来形成一个一维数组,
2022-04-16 12:45:20
5406
原创 蓝桥 算法提高 最优分解方案
问题描述 把正整数N分解成若干个互不相同的正整数的和,且使这些自然数的成绩最大。请你编写一个程序,由键盘输入N(3≤N≤1000),求满足条件的分解方案。输入格式 N由键盘输入。输出格式 ① 第一行输出分解方案,相邻两数之间用逗号分开; ② 第二行输出乘积(MUL)样例输入N=10;样例输出2,3,5,MUL=30思路:本题使用的是简单的贪心的思想,即将其分解为从2开始依次递增的数的相乘即可。不过有一点需要注意,即在最后减完剩下的数不够下一个自然数
2022-03-29 18:14:34
664
原创 蓝桥 蚂蚁感冒思路分享【省赛】【A组】
题目: 长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。 这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。 请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。数据格式 第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。 接着的一行是n个用空格分开的整数 Xi (-100 < Xi &
2022-03-29 17:39:50
167
原创 蓝桥 历届试题 字串排序【第十一届】【省赛】【A组】
一.问题描述小蓝最近学习了一些排序算法,其中冒泡排序让他印象深刻。在冒泡排序中,每次只能交换相邻的两个元素。小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符,则在所有可能的排序方案中,冒泡排序的总交换次数是最少的。例如,对于字符串 lan 排序,只需要 1 次交换。对于字符串 qiao 排序,总共需要 4 次交换。小蓝的幸运数字是 V,他想找到一个只包含小写英文字母的字符串,对这个串中的字符进行冒泡排序,正好需要 V 次交换。请帮助小蓝找一个这样的字符串。如果可能找到多个
2022-03-26 20:06:14
930
转载 Java Arraylist
转载自:Java ArrayList | 菜鸟教程ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。1.初始化ArrayList<E> objectName =new ArrayList<>(); // 初始化E: 泛型数据类型,用于设置 objectName 的数据类型,只能为引用数据类型。 objectName: 对象名2.添加元素ArrayList 类提供了很多有用的方法,添加元素
2022-03-22 00:35:26
200
原创 蓝桥 算法提高 最小字符串
一、问题描述 给定一些字符串(只包含小写字母),要求将他们串起来构成一个字典序最小的字符串。输入格式 第一行T,表示有T组数据。 接下来T组数据 每组第一行一个正整数n,表示字符串个数。 接下来n行,每行一个字符串(长度不超过100)。输出格式 T行,每行一个字符串。样例输入13abc样例输出abc数据规模和约定 T<=7000,n<=100;二、解决方法import java.util.ArrayList;
2022-03-22 00:26:47
674
转载 Java Arrays.sort()方法
原文链接:https://blog.csdn.net/qq_30347475/article/details/123070851原文链接:https://blog.csdn.net/winddreams/article/details/515775001.Arrays.sort()中只有数组参数int[] array = {5, 6, -1, 4};Arrays.sort(array);这种是默认的排序,按照字典序(ASCII)的顺序进行排序(升序)。2.Arrays.sort()中数.
2022-03-22 00:13:54
1274
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人