N——>BatchSize 数据维度理解和处理(chun, cat, squeeze, unsqueeze)

数据处理之N——>BatchSize

N——>batch_size

train_data = TensorDataset(torch.Tensor(x_train).double(), torch.Tensor(y_train).double())
train_loader = DataLoader(train_data, batch_size=args.bs, shuffle=True, drop_last=True)
for batch_idx, (inputs, results) in enumerate(train_data):print(inputs.shape, results.shape) 

不过我得说,train_loader局限于第一维,做的事如下代码:

for i in range(0, num_samples, batch_size):batch = data[i:i + batch_size]yield batch

在这里插入图片描述

维度

  • 分块:iter.chunk(分成几块,dim)
  • 连接:torch.cat( [ tensor1, tensor2 ](放在列表中),dim)
  • 升维1 / 降维1:squeeze(dim), unsqueeze(dim)

[64, 32, 1, 541]维度互换有影响吗?怎么去想这个事
数据本身并没有改变,只是数据在张量中的排列顺序发生了变化,也就是索引方式变了
例如,如果你将形状为[5266, 32, 541, 1]的张量的第3和第4维度交换,你得到的张量仍然包含相同的元素,但它们在张量中的排列方式不同,变成了形状为[5266, 32, 1, 541]的张量。这在某些情况下可能对特定的计算或模型操作更有用。
既然要求你按照什么样的维度去排列索引,而且你也知道每个数字代表的对应的是什么意思,你就直接按照他说的顺序去改就是了啊!

只要你给的数据的维度能对得上就没有任何问题,最主要的是首先要搞明白你需要几维的数据并搞明白每一维的意思,要对上,不然就会出现channel对到T上的尴尬问题。
s e q _ l e n seq\_len seq_len:序列长度
i n p u t _ s i z e input\_size input_size:序列的个体的维度
举一个例子,你的目的是要跑RNN,用RNNCELL,那么首先外部循环的肯定是seq_len,每次输入 [ b s , c h a n n e l , i n p u t _ s i z e ] [bs, channel, input\_size] [bs,channel,input_size]的数据到model里面。
那么如果如果提供的数据是 [ 5266 , 32 , 1 , 541 ] , N = 5266 [5266, 32, 1, 541],N = 5266 [5266,32,1,541]N=5266 s e q _ l e n = 32 , i n p u t _ s i z e = 541 , c h a n n e l = 1 seq\_len = 32, input\_size = 541, channel = 1 seq_len=32,input_size=541,channel=1
那么每一批次的维度比如是 [ 128 , 32 , 1 , 541 ] [128, 32, 1, 541] [128,32,1,541]
你的目标也就是得到每次的输入 [ 128 , 1 , 541 ] [128, 1, 541] [128,1,541]
按照第二个维度展开,即将第二个维度分成32个块——>pytorch带的chunk函数
用法:iter.chunk(要分的快数量,沿着哪个维度)

seq.chunk(seq.size(1), dim = 1)#传入的是seq.size(1)即要分成每个为1的

然后得到: [ 128 , 1 , 1 , 541 ] [128, 1, 1, 541] [128,1,1,541]
再使用seq.squeeze(1)

squeeze 函数有一个可选的参数,即 dim,它指定了要挤压的维度。如果指定 dim,则 squeeze
仅删除指定的维度,如果该维度大小为1。如果不指定 dim,则默认情况下会删除所有尺寸为1的维度。

没看懂的深浅拷贝,clone,copy etc.
https://www.jb51.net/article/201724.htm

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

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

相关文章

Mac/Linux安装使用 opengauss数据库步骤

问题背景 一般部署opengauss数据库在虚拟机中,Mac使用虚拟机步骤较为繁琐,可以使用Docker部署opengauss数据库。Linux也可以使用此方式来部署opengauss数据库。 1. 在docker官网下载Docker桌面版,m系列芯片选Apple Chip。如果是Linux就下载…

【解决】设置pip安装依赖包路径默认路径在conda路径下,而不是C盘路径下

【解决】设置pip安装依赖包路径默认路径在conda路径下,而不是C盘路径下 问题描述 在win11下安装miniconda,在conda环境里使用pip安装,依赖包总是安装到C盘路径,如 C:\Users\Jimmy\AppData\Local\Programs\Python\Python311\Lib\…

【数据结构】线性表(十)队列:循环队列及其基本操作(初始化、判空、判满、入队、出队、存取队首元素)

文章目录 队列1. 定义2. 基本操作 顺序队列循环队列1. 头文件和常量2. 队列结构体3. 队列的初始化4. 判断队列是否为空5. 判断队列是否已满6. 入队7. 出队8. 存取队首元素9. 获取队列中元素个数10. 打印队列中的元素9. 主函数10. 代码整合 堆栈Stack 和 队列Queue是两种非常重要…

基于springboot实现基于Java的超市进销存系统项目【项目源码+论文说明】

基于springboot实现基于Java的超市进销存系统演示 摘要 随着信息化时代的到来,管理系统都趋向于智能化、系统化,超市进销存系统也不例外,但目前国内仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大&#x…

Unity使用c#开发apk项目(十九)(Failed to find entry-points:System.Exception: )

文章目录 前言解决方案:1.报警信息如下2.选择3d urp3.引入Fusion之后选择包管理,点击Burst中的Advanced Project Settings4.勾选两个预设选项5.引入官网unity.burst6.更新后报警消失前言 制作局域网游戏,出现未找到进入点报警 Failed to find entry-points 解决方案: 1.报…

【MySql】8- 实践篇(六)

文章目录 1. MySql保证主备一致1.1 MySQL 主备的基本原理1.2 binlog 的三种格式对比1.3 循环复制问题 2. MySql保证高可用2.1 主备延迟2.2 主备延迟的来源2.3 可靠性优先策略2.4 可用性优先策略 3. 备库为何会延迟很久-备库并行复制能力3.1 MySQL 5.6 版本的并行复制策略3.2 Ma…

CRM系统如何提高客户保留率?提高CRM客户关系

提高企业的客户保留率与CRM客户关系管理密切相关。CRM客户管理系统是企业用来进一步培养与客户关系的技术和技巧的结合。要与您的客户建立并保持这种联系,您可以参考正文的几个策略。下面来说说,CRM系统如何提高客户保留率? 提高客户保留率的…

推荐-25个开源软件

今天,我想让您对下一个 25 个出色的开源软件。您可以安装它,并且几乎开箱即用! ⚠️使用软件前请检查是否安全️️ 1. Portmaster (Go) — 隐私保护者 Portmaster 由 Safing 开发,是一款开源软件,可帮助您保护在线活…

U2-Net论文解读

原文《U 2 -Net: Going Deeper with Nested U-Structure for Salient Object Detection》 目录 一、综述 二、EnCode编码器 三、DeCode解码器 四、特征图融合与目标函数 五、补充-空洞卷积 一、综述 U2-Net:基于堆叠U型结构的来加深网络,用于SOD&…

秋季期中考复现xj

flow analysis 1 What is the backdoor file name that comes with the server?( Including file suffix) 服务器自带的后门文件是什么?(含文件后缀) 题目还要求最后把那个文件名MD5一下,再去提交 开始的前三题是流量分析的&…

2.6.C++项目:网络版五子棋对战之数据管理模块-游戏房间管理模块的设计

文章目录 一、意义二、功能三、作用四、游戏房间类基本框架五、游戏房间管理类基本框架七、游戏房间类代码八、游戏房间管理类代码 一、意义 对匹配成功的玩家创建房间,建立起一个小范围的玩家之间的关联关系! 房间里一个玩家产生的动作将会广播给房间里…

Dynamics 365 使用ILMerge 合并CRM开发后的DLL

很久以前写过一篇博文,关于用ILMerge 命令合并DLL,当时时纯敲命令行的,现在有了更简单的方式,只需要在NuGet下载如下两个包 另外插件引用第三方dll的新方案Preview来了,不久的将来就不需要使用ILMerge了

外汇天眼:过度交易是大忌,交易不是越多越好!

过度交易是交易中的大忌,因为交易并不是越多越好。为什么我们倾向于将交易失败归因于心态呢?这可能是因为我们认为一笔交易成功和失败的概率都是50%,从而让人们误以为他们具备盈利的能力。然而,如果我们具备盈利的能力&#xff0c…

提升APP的用户体验的方法

提高APP的用户体验(User Experience,简称UX)对于吸引用户、提高用户满意度和应用的成功至关重要。以下是一些方法,可以帮助改善APP的用户体验,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包…

【vue3】踩坑日记,vite与node版本对应(mac环境)

创建vue3vitets项目时,报错The requested module ‘vue’ does not provide an export named ‘computed’; node版本问题, Vite 需要 Node.js 版本 14.18,16; 升级node版本步骤: 先查看node的版本&#…

Elasticsearch集群搭建与相关知识点整理

前言:大家好,我是小威,24届毕业生,在一家满意的公司实习。本篇文章参考网上的课程,介绍Elasticsearch集群的搭建,以及Elasticsearch集群相关知识点整理。 如果文章有什么需要改进的地方还请大佬不吝赐教&am…

自动驾驶的商业应用和市场前景

自动驾驶技术已经成为了交通运输领域的一项重要创新。它不仅在改善交通安全性和效率方面具有巨大潜力,还为各种商业应用提供了新的机会。本文将探讨自动驾驶在交通运输中的潜力,自动驾驶汽车的制造商和技术公司,以及自动驾驶的商业模式和市场…

云栖大会?全部免费!!抢先一步看!

2023云栖大会定档10月31日! 点击链接免费预约云栖门票: 2023云栖大会-领票页面 2023 云栖大会将于 10.31-11.2 在杭州云栖小镇举办,深度拥抱大数据AI 核心技术,见证阿里云大数据AI产品年度重磅发布及创新。开放融合的科技展示平…

Mysql数据库指定某数据库或某表赋予增删改查操作权限各类划分权限的方法总结实战

一、mysql创建用户只赋予指定数据库的增删改查操作权限 在日常生产运维工作中,我们经常需要给其他厂商或者合作伙伴提供数据库的账号,并且需要指定某个用户只能查询指定的数据库,并且赋予增删改查的指定权限。 (1)创…

执行 SQL 响应比较慢,你有哪些排查思路?

排查思路 如果执行 SQL 响应比较慢,我觉得可能有以下 4 个原因: 第 1 个原因:没有索引或者导致索引失效。 第 2 个原因:单表数据量数据过多,导致查询瓶颈第 3 个原因:网络原因或者机器负载过高。 第 4 个原…