【Python/Pytorch 】-- 滑动窗口算法

在这里插入图片描述

文章目录

文章目录

  • 00 写在前面
  • 01 基于Python版本的滑动窗口代码
  • 02 算法效果

00 写在前面

写这个算法原因是:训练了一个时序网络,该网络模型的时序维度为32,而测试数据的时序维度为90。因此需要采用滑动窗口的方法,生成一系列32维度的窗口,用于测试。

该算法中用到了一个python的关键字yield,其用于定义生成器函数。生成器函数与普通函数不同,它可以在执行过程中暂停,并在以后继续从暂停的地方恢复执行。每次调用生成器函数时,都会返回一个生成器对象,而不是直接返回一个值。在你的代码中,yield 用于产生一个滑动窗口。

01 基于Python版本的滑动窗口代码

def window(seq, size=3, stride=2):"""返回一个滑动窗口(宽度为'size')在数据序列'seq'上,具有指定的'stride'。例如,seq -> (s0, s1, ..., s[size-1]), (s[stride], s[stride+1], ..., s[stride+size-1]), ..."""it = iter(seq)  # 从输入序列创建一个迭代器result = []  # 初始化一个空列表来存储当前窗口# 遍历迭代器中的每个元素for elem in it:result.append(elem)  # 将当前元素添加到窗口中if len(result) == size:  # 如果窗口达到所需大小yield result  # 生成当前窗口result = result[stride:]  # 根据步幅长度滑动窗口# 如果主循环后结果列表中还有剩余元素if result:i = 0  # 初始化一个计数器来填充剩余窗口while len(result) < size:  # 当窗口小于所需大小时result.append(seq[i % len(seq)])  # 从序列开始添加元素i += 1  # 增加计数器yield result  # 生成最终窗口

02 算法效果

# 示例使用
seq = [1, 2, 3, 4, 5, 6, 7, 8]
for windowed in window(seq, size=3, stride=2):print(windowed)  # 打印每个滑动窗口初始状态:result = []
添加元素:result = [1, 2, 3] 生成窗口 [1, 2, 3],重置 result = [3]
添加元素:result = [3, 4, 5] 生成窗口 [3, 4, 5],重置 result = [5]
添加元素:result = [5, 6, 7] 生成窗口 [5, 6, 7],重置 result = [7]
添加元素:result = [7, 8]
填充元素:result = [7, 8, 1],生成最后一个窗口 [7, 8, 1]

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟DOM的比较

patch 将虚拟DOM渲染成DOM&#xff0c;这就是patch的作用 在vue运行的时候会生成新旧两个虚拟DOM树&#xff0c;通过比较这两棵DOM树&#xff0c;我们就能针对性的修改真实DOM 事实上&#xff0c;我们大可以在每次比较两棵DOM树的时候删除现有的DOM结构&#xff0c;然后根据新的…

大数据-数据分析初步学习,待补充

参考视频&#xff1a;数据分析只需3小时从入门到进阶&#xff08;up亲身实践&#xff09;_哔哩哔哩_bilibili 数据指标&#xff1a; 对当前业务有参考价值的统计数据 分类&#xff1a;用户数据&#xff0c;业务数据&#xff0c;行为数据 用户数据 存量&#xff1a; DAU&#…

可信计算和数字水印技术

可信计算 可信计算可信计算基础概述可信计算关键技术要素可信性认证可信计算优劣 数字水印技术数字版权保护技术 可信计算 可信计算基础概述 可信计算&#xff08;Trusted Computing&#xff0c;TC&#xff09;&#xff1a;在计算和网络通信系统中广泛使用的、基于硬件安全模块…

Android Glide, first start based on loadThumbnail, Kotlin(二)

Android Glide, first start based on loadThumbnail, Kotlin&#xff08;二&#xff09; Android Glide, first start based on loadThumbnail, Kotlin&#xff08;一&#xff09;中有个小问题&#xff0c;通过loadThumbnail()采集到的缩略图真的就是整张图片的完整缩略图&…

C语言入门系列:数据类型之布尔类型

文章目录 1&#xff0c;以前&#xff0c;C语言没有布尔类型2&#xff0c;后来&#xff0c;C语言假装有了布尔类型3&#xff0c;再后来&#xff0c;C语言的非标布尔类型 1&#xff0c;以前&#xff0c;C语言没有布尔类型 其实&#xff0c;C 语言没有真正的布尔类型&#xff0c;…

STM32通过I2C软件读写MPU6050

文章目录​​​​​​​ 1. MPU6050 1.1 运动学概念 1.2 工作原理 2. 参数 2.1 量程选择 2.2 I2C从机地址配置 3. 硬件电路 4. 框架图 5. 软件和硬件波形对比 6. 软件I2C读写MPU6050 6.1 程序整体构架 6.2 一些需要注意的点&#xff1a; 6.3 MPU6050初始化配置 6…

支持 MKV、MP4、AVI、MPG 等格式视频转码器

一、简介 1、一款开源的视频转码器&#xff0c;适用于 Linux、Mac 和 Windows。它是一个免费的工具&#xff0c;由志愿者们开发&#xff0c;可以将几乎所有格式的视频转换为现代、广泛支持的编码格式。你可以在官网上下载该应用或源代码。该软件支持 MKV、MP4、AVI、MPG 等格式…

如何计算文档会消耗的Token数量?

在AI的世界里&#xff0c;"token"就像是把我们说的话或写的文字拆分成的小块块&#xff0c;每块可以是一个词、一个短语、一个标点&#xff0c;甚至一个字母。不同的AI系统可能有不同的拆分方法。 阿里云的灵积平台有个工具&#xff0c;叫做Token计算器。这个工具就…

经常混淆的ADC输入类型!

大家好,这里是大话硬件。 这篇文章我们来聊聊ADC的输入类型。 ADC的输入类型根据ADI的官网,分为了3种类型,单端,差分,伪差分。如下图快速选型的界面所示。 同时,TI的官网对ADC的输入类型划分也是同样的3种类型。 可见,两个器件厂家对ADC的输入类型都是这样定义的。 …

springMVC的bug

写SpringMVC时&#xff0c;配置视图解析器路径中少写了个“/”导致url拼接错误&#xff0c;无法返回视图

支持向量机 (SVM) 算法详解

支持向量机 (SVM) 算法详解 支持向量机&#xff08;Support Vector Machine, SVM&#xff09;是一种监督学习模型&#xff0c;广泛应用于分类和回归分析。SVM 特别适合高维数据&#xff0c;并且在处理复杂非线性数据时表现出色。本文将详细讲解 SVM 的原理、数学公式、应用场景…

项目中选择Entity Framework Core还是Dapper?

我是将 Dapper 还是 Entity framework core 用于下一个 .NET 项目&#xff1f;当你必须做出这个决定时&#xff0c;总是令人困惑&#xff0c;为了项目的成功&#xff0c;你需要做出正确的决定。让我来帮你... 介绍 使用 .NET 开发的应用程序可以根据其使用的对象关系映射器 &…

Java | Leetcode Java题解之第168题Excel表列名称

题目&#xff1a; 题解&#xff1a; class Solution {public String convertToTitle(int columnNumber) {StringBuffer sb new StringBuffer();while (columnNumber ! 0) {columnNumber--;sb.append((char)(columnNumber % 26 A));columnNumber / 26;}return sb.reverse().t…

【APP移动端性能测试】第一节.APP应用架构、环境和敏捷开发模型介绍

文章目录 前言一、APP应用架构二、APP项目环境 2.1 后端项目环境 2.2 前端项目环境三、Scrum敏捷开发模型 3.1 Scrum敏捷模型基础介绍 3.2 Scrum敏捷开发开发流程总结 前言 一、APP应用架构 &#xff08;1&#xff09;APP应用架构 &#xff08;2&#xff0…

springboot应用cpu飙升的原因排除

1、通过top或者jps命令查到是那个java进程&#xff0c; top可以看全局那个进程耗cpu&#xff0c;而jps则默认是java最耗cpu的&#xff0c;比如找到进程是196 1.1 top (推荐)或者jps命令均可 2、根据第一步获取的进程号&#xff0c;查询进程里那个线程最占用cpu&#xff0c;发…

js 用正则表达式 匹配自定义字符之间的字符串数据,如:( )、[ ]、{ }、< >、【】等括号之间的字符串数据

要使用正则表达式匹配尖括号()之间的数据&#xff0c;可以使用以下代码示例&#xff1a; 在JavaScript中&#xff0c;你可以使用正则表达式来匹配括号()之间的数据。以下是一个简单的例子&#xff0c;它展示了如何使用正则表达式来获取两对括号之间的文本。 // 示例字符串 con…

LENOVO联想 小新 16 IAH8 2023款(83BG)笔记本原厂Windows11系统,恢复出厂开箱状态预装OEM系统镜像安装包下载

适用型号&#xff1a;小新 16 IAH8【83BG】 链接&#xff1a;https://pan.baidu.com/s/18VbGbBXtQEW5P8wLIyJtAQ?pwddv1s 提取码&#xff1a;dv1s 联想原装Win11系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、Office办公软件、联想电脑管家…

董宇辉的人生关键词:年轻人的成长指南

在当今这个信息爆炸、竞争激烈的社会中&#xff0c;年轻人面临着前所未有的挑战与机遇。如何从纷繁复杂的世界中找到属于自己的道路&#xff1f;近日&#xff0c;知名人生导师董宇辉为年轻人提出了几个人生关键词&#xff0c;这些词汇不仅凝聚了他多年的人生感悟&#xff0c;更…

【STM32-ST-Link】

STM32-ST-Link ■ ST-Link简介■ ST-Link驱动的安装。■ ST-Link编程软件(MDK)配置。■ ST-Link固件升级方法 ■ ST-Link简介 由于德产 J-LINK 价格非常昂贵&#xff0c; 而国产 J-LINK 因为版权问题将在万能的淘宝销声匿迹。 所以我们有必要给大家介绍 JTAG/SWD 调试工具中另…

如何做好技术管理与技术规划?

一、背景 做好技术管理不仅要求紧跟行业前沿动态&#xff0c;同时也需把握好产品开发的阶段性分期&#xff0c;确保技术成果转化和产品落地的顺畅进行。技术管理的成功与否&#xff0c;在很大程度上取决于能否精准捕捉市场需求&#xff0c;据此调整任务优先级。面对瞬息万变的…