论文辅助笔记:Tempo 之 model.py

 0 导入库

import math
from dataclasses import dataclass, asdictimport torch
import torch.nn as nnfrom src.modules.transformer import Block
from src.modules.prompt import Prompt
from src.modules.utils import (FlattenHead,PoolingHead,RevIN,
)

1TEMPOConfig

1.1 构造函数

class TEMPOConfig:"""Configuration of a `TEMPO` model.Args:num_series: 时间序列的数量, N input_len: 输入时间序列的长度, Lpred_len: 预测时间序列的长度, Yblock_size: 块的最大长度(openai gpt2 固定)n_layer: Transformer 层的数量n_head: 多头注意力机制中的头数量n_embd: 嵌入维度的数量patch_size: 块的大小,用于将输入时间序列分割成多个小块patch_stride: 块的步幅,用于指定块之间的重叠程度revin: 是否使用 RevIN(归一化和逆变换)affine: 在 RevIN 中是否使用仿射变换embd_pdrop:嵌入层的 dropout 率resid_pdrop: 残差连接的 dropout 率attn_pdrop: 注意力层的 dropout 率head_type: 输出层的类型,可以是 FlattenHead 或 PoolingHeadhead_pdtop: 输出层的 dropout 率individual: 是否为每个组件使用独立的输出层lora: 是否使用 LoRA(低秩近似)lora_config: LoRA 的配置model_type: 模型类型,默认为 gpt2interpret: 是否输出组件以便解释"""num_series: intinput_len: intpred_len: intpatch_size: intpatch_stride: intblock_size: int = Nonen_layer: int = Nonen_head: int = Nonen_embd: int = Nonerevin: bool = Trueaffine: bool = Trueembd_pdrop: float = 0.1resid_pdrop: float = 0.1attn_pdrop: float = 0.1head_type: str = "flatten"head_pdtop: float = 0.1individual: bool = Falselora: bool = Falselora_config: dict = Noneprompt_config: dict = None#Prompt 模块的配置model_type: str = "gpt2"interpret: bool = False

1.2  todict

TEMPOConfig 类实例转换为一个字典

def todict(self):return asdict(self)'''
asdict 是 Python 的 dataclasses 模块提供的一个函数,用于将数据类实例转换为字典。这个方法将当前实例的所有属性转换为字典键值对,并返回这个字典。
'''

1.3 __contains__

重载了 Python 的 __contains__ 魔术方法,使得 TEMPOConfig 实例可以像字典一样使用 in 操作符来检查属性是否存在。

def __contains__(self, key):return key in self.todict()

1.4 __getitem__

重载了 __getitem__ 魔术方法,使得 TEMPOConfig 实例可以像字典一样通过键来获取属性值

def __getitem__(self, key):return getattr(self, key)

1.5__setitem__

重载了 __setitem__ 魔术方法,使得 TEMPOConfig 实例可以像字典一样通过键来设置属性值

def __setitem__(self, key, value):setattr(self, key, value)

1.6 update

通过一个字典 config 更新 TEMPOConfig 实例的属性

def update(self, config: dict):for k, v in config.items():setattr(self, k, v)

2 TEMPO

class TEMPO(nn.Module):"""Notation:B: 批次大小N: 时间序列的数量E: 嵌入维度P: 块的数量PS: patch的大小L: 输入时间序列的长度Y: 预测时间序列的长度"""models = ("gpt2",)#支持的模型类型列表head_types = ("flatten", "pooling")#支持的输出层类型params = {"gpt2": dict(block_size=1024, n_head=12, n_embd=768),}'''模型的参数,例如 "gpt2" 模型的块大小、注意力头数和嵌入维度等'''

2.1 __init__

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1411445.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

【模型参数优化】随机搜索对随机森林分类模型进行参数寻优【附python实现代码】

写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 路虽远,行则将至&#…

苍穹外卖项目

Day01 收获 补习git Git学习之路-CSDN博客 nginx 作用:反向代理和负载均衡 swagger Swagger 与 Yapi Swagger: 可以自动的帮助开发人员生成接口文档,并对接口进行测试。 项目接口文档网址: ​​​​​​​http://localhost:808…

上位机图像处理和嵌入式模块部署(树莓派4b部署java环境)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 通常我们都会认为java是部署在pc服务器上面的,或者是用java开发android应用程序。其实不然,java也可以部署在嵌入式开发板子…

这是一个简单的照明材料网站,后续还会更新

1、首页效果图 代码 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>爱德照明网站首页</title><style>/*外部样式*/charset "utf-8";*{margin: 0;padding: 0;box-sizing: border-box;}a{text-dec…

SVM直观理解

https://tangshusen.me/2018/10/27/SVM/ https://www.bilibili.com/video/BV16T4y1y7qj/?spm_id_from333.337.search-card.all.click&vd_source8272bd48fee17396a4a1746c256ab0ae SVM是什么? 先来看看维基百科上对SVM的定义: 支持向量机&#xff08;英语&#xff1a;su…

JVM笔记1--Java内存区域

1、运行时数据区域 从上图可以看出来&#xff0c;Java虚拟机运行时数据区域整体上可以分成5大块&#xff1a; 1.1、程序计数器 程序计数器是一块较小的内存空间。它可以看做当前线程所执行的字节码的行号指示器。在Java虚拟机的概念模型里&#xff0c;字节码解释器工作时就是…

工厂流水线生产视频素材哪里有?工厂固定机位视频素材从哪找?

在当今这个视觉内容至关重要的数字时代&#xff0c;具备高质量视频素材的资源库是制胜关键。优质视频素材不仅能够显著提升品牌的视觉吸引力&#xff0c;还能帮助你在社交媒体上获得更多的关注和互动。下面介绍的视频素材网站&#xff0c;每一个都能为你的视频项目提供必要的视…

【Python】机器学习之Sklearn基础教程大纲

机器学习之Sklearn基础教程大纲 1. 引言 机器学习简介Scikit-learn&#xff08;Sklearn&#xff09;库介绍安装和配置Sklearn 2. 数据预处理 2.1 数据加载与查看 - 加载CSV、Excel等格式的数据- 查看数据的基本信息&#xff08;如形状、数据类型等&#xff09;2.2 数据清洗…

深入浅出 BERT

Transformer 用于学习句子中的长距离依赖关系&#xff0c;同时执行序列到序列的建模。 它通过解决可变长度输入、并行化、梯度消失或爆炸、数据规模巨大等问题&#xff0c;比其他模型表现更好。使用的注意力机制是神经架构的一部分&#xff0c;使其能够动态突出显示输入数据的…

Git系列:如何为不同的Git仓库设置不同的配置项?

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

威尔科克森秩和检验 (Wilcoxon rank-sum test)-- 代码实现

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计3077字&#xff0c;阅读大概需要3分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#xf…

阿里低代码引擎学习记录

官网 一、关于设计器 1、从设计器入手进行低代码开发 设计器就是我们用拖拉拽的方法&#xff0c;配合少量代码进行页面或者应用开发的在线工具。 阿里官方提供了以下八个不同类型的设计器Demo&#xff1a; 综合场景Demo&#xff08;各项能力相对完整&#xff0c;使用Fusion…

深度学习之基于Unet肺部CT图像分割项目

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 肺部CT图像分割在医学诊断中占据重要地位&#xff0c;它有助于医生快速、准确地识别和分析肺部病变。…

【数据库原理及应用】期末复习汇总高校期末真题试卷

试卷 一、填空题 1.________是位于用户与操作系统之间的一层数据管理软件。 2.数据库系统的三级模式结构是指________、________、________。 3.数据库系统的三种数据模型是________ 、________、________。 4.若关系中的某一属性组的值能唯一地标识一个元组&#xff0c;则…

2024-第四批C++ 第二轮选拔赛(代码加解析)

第二轮比赛结束了&#xff0c;答案又出来了&#xff0c;充实的一天又过去了...... 一、摘苹果 题目描述 小白同学种植了一颗苹果树&#xff0c;经过他悉心的照料&#xff0c;苹果树终于结果了&#xff0c;结出了很多苹果。 现在树上有 n 个苹果&#xff0c;因为体力有限&…

【matlab基础知识】(二)

i从1加到100 >> s10;for i1:100,s1s1i;end;s1 s1 5050 >> s20;i1;while(i<100),s2s2i;ii1;end;s2 s2 5050 >> sum(1:100) ans 5050 >> s10;m0;while(s1<10000),mm1;s1s1m;end;s1,m s1 10011 m 141 tic, s0;for i1:100000,ss1/2^i1/3…

【kettle006】kettle访问华为openGauss高斯数据库并处理数据至execl文件(已更新)

1.一直以来想写下基于kettle的系列文章&#xff0c;作为较火的数据ETL工具&#xff0c;也是日常项目开发中常用的一款工具&#xff0c;最近刚好挤时间梳理、总结下这块儿的知识体系。 2.熟悉、梳理、总结下华为openGauss高斯数据库相关知识体系 3.欢迎批评指正&#xff0c;跪谢…

在VMware虚拟机ubuntu中运行usb_cam.launch时出现报错出现报错:select timeout

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、运行usb_cam.launch时出现报错出现报错&#xff1a;select timeout1.问题描述2.问题解决 一、运行usb_cam.launch时出现报错出现报错&#xff1a;select timeou…

C 深入指针(2)

目录 1 野指针 1.1 成因 1.2 如何规避野指针 2 assert 断言 2.1 用法 2.2 assert 的优点 2.1 assert 的缺点 3 小注解 3.1 Debug 和 Release 1 野指针 【概念】&#xff1a; 野指针就是指针指向的位置是不可知的&#xff08;随机的、不正确的、没有明确限制的&#…

实习与就业|基于Springboot+vue的实习与就业管理系统(源码+数据库+文档)

实习与就业目录 基于Springbootvue的实习与就业管理系统 一、前言 二、系统设计 三、系统功能设计 管理员登录 就业管理 企业公告信息管理 企业公告类型管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主…