- 博客(49)
- 收藏
- 关注
原创 时间序列(Time-Series)SelfAttention_Family.py代码解析
前向传播函数,首先处理时间序列数据并使用注意力机制,然后通过一个路由器(router)处理数据的维度。#前向传播函数,和DSAttention类似,计算注意力分数,并应用掩码和dropout。#在初始化函数中,设置了一些基础的参数,如缩放因子、掩码标志、是否输出注意力矩阵等。#前向传播函数,先对查询、键、值进行线性变换,然后通过内部注意力机制计算输出。#定义了一个内部函数,用于调整查询长度,以适应LSH自注意力要求的特定长度。#定义了一个内部函数,用于从K中对Q进行采样,并选出Q中的top-k项。
2024-02-06 15:15:41 1284
原创 时间序列(Time-Series)Pyraformer_EncDec.py代码解析
定义了一个函数来获取注意力掩码,这个掩码用于PAM-Naive(Pyramid Attention Mechanism)的注意力层。#定义了编码器层,由两个子层组成:一个自注意力层和一个位置前馈网络。#定义了一个瓶颈卷积层结构,用于构造跨尺度卷积(CSCM)。# #最终反转掩码矩阵以创建实际使用的掩码。#定义了一个函数来收集来自PAM层级结构序列的特征。#初始化一个列表,用于存放每一层的尺寸。#定义了一个包含自注意力机制的编码器模型。#定义了一个卷积层类,用于降低序列的维度。#定义了一个常规掩码类。
2024-02-06 15:14:24 877
原创 时间序列(Time-Series)MultiWaveletCorrelation.py代码解析
定义了一个执行多小波变换卷积操作的神经网络模块。这个类结合了多小波变换和卷积操作,用于深度学习模型中的特征提取。#定义了一个基于傅里叶变换的交叉注意力模块。#定义了一个基于多小波变换的交叉注意力模块。这个类结合了交叉注意力和多小波变换,用于捕捉序列间的关系。#定义了一个执行稀疏核傅里叶变换的神经网络模块。#定义了一个基于多小波变换的神经网络模块。这个类执行多小波变换,用于深度学习模型中的特征变换。#这两行导入了PyTorch的神经网络模块和函数模块。#这个函数计算多项式基函数和关于基base的检验函数。
2024-02-06 14:48:04 833
原创 时间序列(Time-Series)FourierCorrelation.py代码解析
modes是频率域关注的模式数,mode_select_method是选择这些模式的方法,默认为'random'。#这行定义了一个名为get_frequency_modes的函数,它接受序列长度seq_len,模式数modes,和模式选择方法mode_select_method作为参数。#返回处理后的结果x和一个占位符None,因为通常注意力机制会返回一个额外的输出,例如注意力权重,但在这里并未使用。#在FourierBlock的实例中,调用get_frequency_modes函数来获取频率模式的索引。
2024-02-06 14:01:22 766 2
原创 时间序列(Time-Series)ETSformer_EncDec.py代码解析
self._smoothing_weight = nn.Parameter(torch.randn(nhead, 1))#定义权重。self.v0 = nn.Parameter(torch.randn(1, 1, nhead, dim))#定义偏置。#结合水平(level)、增长(growth)和季节性(season)分量的模型层。#实现编码器层,结合了增长、季节性、水平分量以及一个前馈网络。#实现解码器层,其中阻尼增长和固定季节性分量用于长期预测。#实现一个增长层,用来模拟时间序列中的趋势部分。
2024-02-04 18:37:09 695 1
原创 时间序列(Time-Series)ETSformer_EncDec.py代码解析
self.conv1和self.conv2、self.norm1、self.norm2、self.norm3、self.dropout:与编码层类似,定义相应的卷积层、归一化层和dropout层。#self.self_attention和self.cross_attention:定义自注意力机制和交叉注意力机制。#self.conv1和self.conv2:定义两个1维卷积层用于在注意力操作后对特征进行转换。#self.norm1和self.norm2:定义两个层归一化操作用于稳定网络输出。
2024-02-04 18:36:04 614
原创 在Python中.values的一种使用方法
在Python中,.values属性通常与Pandas库关联,它是DataFrame或Series对象的一个属性。Pandas是一个流行的数据分析和处理库,它提供了强大的数据结构和方法来处理表格数据。当你调用.values属性时,它会返回PandasDataFrame或Series对象中的数据作为一个NumPy数组(ndarray这使得你可以快速地将Pandas对象中存储的数据转换为一个NumPy格式的数组,这对于进行数学运算或数据分析来说很有用。以下是.values。
2024-01-30 18:05:28 1367
原创 时间序列(Time-Series)Embed.py代码解析
x = self.tokenConv(x.permute(0, 2, 1)).transpose(1, 2) #在前向传播中,对输入x进行维度交换,应用卷积,然后再次交换维度,使其回到原始的形状。# position = torch.arange(0, max_len).float().unsqueeze(1) 创建一个0到max_len的连续值,并增加一个维度。# x = self.value_embedding(x) + self.position_embedding(x) 应用值嵌入和位置嵌入。
2024-01-30 17:18:44 775 1
原创 时间序列(Time-Series)Crossformer_EncDec.py代码解析
初始化方法,参数包括模型的配置configs,窗口大小win_size,模型维度d_model,注意力头数n_heads,前馈网络的维度d_ff,模块的深度depth,dropout率,段数seg_num以及一个因子factor。#初始化方法接收自注意力和交叉注意力层,段长度seg_len,模型维度d_model,可选的前馈网络维度d_ff,以及dropout率。#如果是第一次迭代,将最终预测设置为该层预测,否则将该层预测累加到最终预测上。#将注意力层的输出加到输入上,并应用dropout。
2024-01-26 17:23:53 605
原创 边缘计算在电力行业的应用:挑战与机遇
本文探讨了边缘计算在电力行业的应用现状,面临的挑战以及应对策略,展望了边缘计算技术在智慧电网、分布式发电和灾害响应中的潜力。参考文献: [1] 边缘计算技术联盟. (2022). 边缘计算在电力行业的应用指南. [2] 国际电力网协会. (2023). 边缘计算技术白皮书. [3] 智能电网创新中心. (2022). 边缘计算对智慧电网的影响研究.提高实时性:通过在本地处理数据,边缘计算能够减少数据在网络中的传输时间,提供更快的响应速度,对于保障电网稳定运行至关重要。一、边缘计算在电力行业的应用背景。
2024-01-26 16:20:27 486
原创 时间序列(Time-Series)Conv_Blocks.py代码解析
与V1类似,但构建卷积层的方式不同,它使用了不对称的卷积核代替了对称的卷积核,并在最后额外添加了一个1x1的卷积层。#创建一个列表kernels并使用循环添加num_kernels个二维卷积层(nn.Conv2d),每个核的大小逐渐增加,从1x1开始,步长为2,每层使用适当的填充以保持特征图大小不变。#forward方法与V1版本类似,只是在遍历卷积核时,考虑到额外添加的1x1卷积,迭代次数变为self.num_kernels + 1。#num_kernels: 要使用的不同核大小的数量,默认为6。
2024-01-25 19:13:38 327
原创 时间序列(Time-Series)Autoformer_EncDec.py代码解析
self.conv1 = nn.Conv1d(in_channels=d_model, out_channels=d_ff, kernel_size=1, bias=False) #一维卷积层,用于处理序列数据。self.conv2 = nn.Conv1d(in_channels=d_ff, out_channels=d_model, kernel_size=1, bias=False) #一维卷积层,用于处理序列数据。
2024-01-25 17:08:56 1352 6
原创 时间序列(Time-Series)AutoCorrelation.py代码解析
它接受查询 (queries),键 (keys),值 (values) 以及注意力掩码 (attn_mask),应用傅立叶变换来发现周期性依赖,然后使用聚合函数来处理时间延迟。self.dropout = nn.Dropout(attention_dropout) #注意力机制的dropout率。self.mask_flag = mask_flag #掩码。#实现自相关的训练聚合,该方法首先要找到最重要的时间延迟,然后根据延迟进行聚合。#提供完整的注意力层接口。
2024-01-24 17:03:18 476 1
原创 时间序列(Time-Series)TimesNet.py代码解析
top_list = top_list.detach().cpu().numpy() #从gpu转移cpu并转换为numpy数组。return period, abs(xf).mean(-1)[:, top_list] #返回周期和这些周期对应的平均振幅。_, top_list = torch.topk(frequency_list, k) #找到top k个频率成分。frequency_list = abs(xf).mean(0).mean(-1) #计算变换后振幅的均值。
2024-01-24 11:45:11 1308 3
原创 时间序列(Time-Series)exp_short_term_forecasting.py代码解析
from utils.losses import mape_loss, mase_loss, smape_loss #自定义损失函数。from data_provider.data_factory import data_provider #数据提供模块。#选择优化器,该函数使用adam优化器,从传入的参数self 添加self.args.learning_rate学习率。#验证方法,通过计算模型验证的误差来评估模型性能,即向前传播时不根据学习率计算梯度。
2024-01-23 17:25:26 769 2
原创 时间序列(Time-Series)exp_imputation.py代码解析
mask[mask <= self.args.mask_rate] = 0 # masked #被掩盖。mask[mask > self.args.mask_rate] = 1 # remained #保留。mask[mask <= self.args.mask_rate] = 0 # masked #被掩盖。mask[mask > self.args.mask_rate] = 1 # remained #保留。#将数据的数据类型转化为浮点型,加载到GPU或CPU。
2024-01-23 17:22:43 585
原创 时间序列(Time-Series)exp_long_term_forecasting.py代码解析
将输入数据和真实标签的最后一维拼接起来,形成gt(真实值图),将输入数据和预测结果的最后一维拼接起来,形成pd预测图。#选择优化器,该函数使用adam优化器,从传入的参数self 添加self.args.learning_rate学习率。#从data_provider函数获取数据集合和数据加载器,并提供标志(train,val,test)#将输出和真实标签从模型运行的设备转移到cpu,并将数据转换为numpy格式。#验证方法,通过计算模型验证的误差来评估模型性能,即向前传播时不根据学习率计算梯度。
2024-01-22 18:41:32 639 2
原创 时间序列(Time-Series)exp_anomaly_detection.py代码解析
将attens_energy列表中的所有numpy数组连接起来,并转换为一维数组train_energy。#将attens_energy列表中的所有numpy数组连接起来,并转换为一维数组test_energy。#从data_provider函数获取数据集合和数据加载器,并提供标志(train,val,test)#将test_labels列表中的所有数组连接起来,并转换为一维数组test_labels。#将train_energy、test_energy列表中的数组连接起来,
2024-01-22 18:39:18 593
原创 时间序列(Time-Series)exp_classification.py脚本解析
将数据的数据类型转化为浮点型,加载到GPU或CPU。#早起停止函数,避免过拟合 patience 容忍升高次数。#将转化为浮点型的数据加载到cpu或gpu。#早起停止函数,避免过拟合 patience 容忍升高次数。#将转化为浮点型的数据加载到cpu或gpu。#验证方法,通过计算模型验证的误差来评估模型性能。#验证方法,通过计算模型验证的误差来评估模型性能。#将模型中的梯度设置为0。#计算当前梯度,反向传播。#根据梯度更新网络参数。#关闭梯度计算,节省内存和计算资源。#关闭梯度计算,节省内存和计算资源。
2024-01-22 18:35:46 494
原创 conda移除环境
本文详细阐述了conda移除环境相关的问题,包括如何移出环境、删除虚拟环境、环境包消失了、环境出问题等。通过本文的介绍,相信大家能够更好的使用conda进行虚拟环境的管理。
2023-12-29 16:00:44 6608
原创 python的安装及卸载
1. 如果使用的是Windows操作系统,可以在开始菜单中,找到Anaconda Navigator,点击右上角的X按钮,即可退出Anaconda环境。4. 如果使用的是Anaconda Prompt,可以在Anaconda Prompt中输入deactivate命令,即可退出Anaconda环境。5. 如果使用的是Jupyter Notebook,可以在命令框中输入exit()命令,即可退出Anaconda环境。2、卸载python2.7及其依赖。1、卸载python2.7。3、清除python2.7。
2023-12-26 15:29:22 644
原创 linux无法访问共享目录,ls hgfs失败
这里看到hgfs的权限是可读可执行但不可写,归属人是root,这里就是根源所在,此时执行第3步;-hgfsclient,看看是否共享文件夹已经建立,没有的话去参考其他博客,这里不再多说。3.输入sudo chmod 777 ./hgfs,再ls -l查看权限,得到结果。2.输入cd /mnt,跳转到mnt目录下,执行ls -l,查看文件以及权限。重新挂载:vmhgfs-fuse .host:/ /mnt/hgfs。如果已经存在的话就进行第2步;
2023-12-25 13:48:17 1684
原创 linux环境配置 apt-get update失败
参考:https://blog.csdn.net/nbxuwentao/article/details/90524349在刚安装完ubuntu16时,当我们输入sudo apt-get update会出线安装失败如果部分安装成功,则很大概率是源问题。一般是ubuntu16 自带的源不好用,或者有问题我遇到的问题是:Failed to fetch http://archive.ubuntu.com/ubuntu/pool/main/r/rpcbind/rpcbind_0.2.3-0.6ubuntu0
2022-02-21 09:37:43 4513 3
原创 向量矩阵学习笔记一20211028
1、向量 vector2、矩阵matrix3、张量(多维数组)tensor谷歌开源的神经学框架tensorflowtopology graph (神经网络,拓扑图)tensor在神经网络中流动input->神经网络->output->loss(损失)->求梯度->推导前期的神经网络的参数每行表示一个样本samp 用Xi表示;每列表示一个特征feature 用Yi表示;向量只有两个维度:Xi =(Xi1,Xi2)36.56...
2021-11-01 14:11:23 161
原创 蓝牙配对流程(一)
一、扫描被动扫描(主从之间没有扫描请求与扫描响应)2.主动扫描(主从之间有扫描请求与扫描响应)二、过滤1、信息匹配(是否在白名单)三、建立连接1、建立连接建立连接后的结果:连接成功后不再广播通信,转为数据通信;建立连接超时未响应;从机无响应,连接超时退出连接,产生超时事件;四、服务1、发现服务2、按服务UUID发现服务3、按特征发现4、按属性值(特征描述符)发现...
2021-06-25 08:34:25 4371 2
原创 STM32启动项-startup
1、堆栈设置一般默认为Stack_Size EQU0x00000400(1024Byte);注:一个函数中定义的所有局部变量,加起来不能大于工程的栈大小,否则程序必然会出现内存溢出,导致复位;一个函数中定义的所有局部变量+全局变量不能大于工程的栈。2、分配内存空间,初始化内存单元值AREA STACK, NOINIT, READWRITE, ALIGN伪指令AREA,表示开辟一段内存空间,段名是SUN(叠加);NOINIT:指定此数据段仅仅保留了内存单元,而没有将各初始值写入...
2021-06-24 18:43:03 991 2
转载 蓝牙通信UUID
蓝牙低功耗BLE开发,无论是MCU端还是Android等APP端,都会涉及到一堆的UUID,对应着BLE协议栈GATT的Service、Characteristic、Descriptor。开发者可以自定义这些128位的UUID,也可以采用Bluetooth SIG已定义的标准。1.概念 SDP协议让客户机的应用程序发现存在的服务器应用程序提供的服务以及这些服务的属性。SDP只提供...
2019-05-29 17:16:01 13727 7
转载 nRF51822学习笔记
nRF51822中的蓝牙协议是以bin文件的形式给出的,需要通过nRFgo Studio这个软件将bin文件烧到芯片中,然后就可以使用官方SDK中的例程了,但是工程是要选nRF51822_S130工程。S130是Nordic的低功耗蓝牙的协议栈。它与底层完全独立,我们可以直接通过API接口打开、设置、关闭蓝牙。对于nRF51822芯片中是否有S130,我们在工程中需要对ROM和RAM地址进行相...
2019-04-07 09:59:55 509
原创 结构体的遍历
s_tToolConfig为结构体(类型:octet-string)(又称为uint8_t)static void tool_log(void *addr, uint8_t lenght){ uint8_t *adr =0; printf("\r\nread flash_tool: "); for(uint8_t ...
2019-04-07 09:56:30 5535
原创 nRF51822协议栈基础上在片内flash读写结构体数据(octet-string)
结构体static struct tool_config_t{#define MAILIN_GADDRESS_LONG 9 uint8_t chMailingAddress[MAILIN_GADDRESS_LONG];//octet string#define CUSTOMER_NUMBER_...
2019-04-07 09:48:29 619
原创 蓝牙广播时间设置
1CONN_INTERVAL (连接间隔) 就是两个连接事件之间的时间间隔,连接间隔以1.25为单位,连接间隔的值为6(7.5ms)~3200(4s).不同的应用可能要求不同的时间间隔。长的时间间隔的优势是显著地节省功耗,因为设备可以在连接事件之间有较长时间的休眠,坏处是当设备有应用数据需要发送时,必须要等到下一个连接事件;短的时间间隔优势是两设备连接频发,可以更快地收发数据,不利...
2019-04-02 15:36:23 4922
转载 操作系统的安装与启动基本原理
转自:https://www.cnblogs.com/liangxiaofeng/p/3992100.html一、基本概念 1、BIOS的概念 BIOS(Basic Input/Output System,基本输入输出系统)全称是ROM-BIOS,是只读存储器基本输入/输出系统的简写,它实际是一组被固化到电脑中,为电脑提供最低级最直接的硬件控制的程序,它是连通软件程序和硬件设备之...
2019-02-20 17:34:48 1454
转载 FreeRTOS源码下载及源码文件夹介绍
FreeRTOS源码下载及源码文件夹介绍1、FreeRTOS源码下载去官网https://www.freertos.org或其他途径找到下载程序:双击上图程序后,选择存放路径,下载完成后,此窗口会自动关闭:2、FreeRTOS源码及源码文件夹介绍:FreeRTOS版本有很多,我这里下载出来的是“v9.0.0版”,顶层目录如下:源码文件夹中有两个文件夹,4个网页文件,和一个txt文...
2019-02-20 13:21:13 665
转载 C语言中的static 详细分析
弄懂static 对于写大型的c语言程序还是有很大的帮助。 原文地址: http://blog.csdn.net/keyeagle/article/details/6708077 google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大论不知所云要么在关键之处几个字略过,对于想挖掘底层原理的初学者来说参考性不是很大。所以,我这篇博文...
2018-10-16 14:52:35 121
转载 12864点阵型液晶显示屏的基本原理与使用方法(很详细)——理论
转自:https://blog.csdn.net/txf1984/article/details/46638947点阵LCD的显示原理 在数字电路中,所有的数据都是以0和1保存的,对LCD控制器进行不同的数据操作,可以得到不同的结果。对于显示英文操作,由于英文字母种类很少,只需要8位(一字节)即可。而对于中文,常用却有6000以上,于是我们的DOS前辈想了一个办法,就是将ASCII...
2018-10-16 13:47:22 41681 1
转载 精妙的单片机非阻塞延时程序设计
文章出处:http://blog.chinaunix.net/uid-29673749-id-4425603.html精妙的单片机非阻塞延时程序设计 对于每个单片机爱好者及工程开发设计人员,在刚接触单片机的那最初的青葱岁月里,都有过点亮跑马灯的经历。从看到那一排排小灯按着我们的想法在跳动时激动心情。到随着经验越多,越来又会感觉到这个小灯是个好东西,尤其是在调试资源有限的环境中,有时会帮上大...
2018-10-15 16:16:30 1477 3
转载 【C语言常识】函数的重载和重入
出处:http://blog.csdn.net/gufuguang/article/details/10047723可重入函数可重入函数主要用于多任务环境中,一个可重入的函数简单来说就是可以被中断的函数,也就是说,可以在这个函数执行的任何时刻中断它,转入OS调度下去执行另外一段代码,而返回控制时不会出现什么错误;而不可重入的函数由于使用了一些系统资源,比如全局变量区,中断向量表等,所以它如...
2018-10-15 16:13:57 879
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人