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.mfbz.cn/a/103830.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

自动化测试07Selenium01

目录 什么是自动化测试 Selenium介绍 Selenium是什么 Selenium特点 工作原理 SeleniumJava环境搭建 Selenium常用的API使用 定位元素findElement CSS选择语法 id选择器:#id 类选择 .class 标签选择器 标签名 后代选择器 父级选择器 自己选择器 xpath …

Django实现音乐网站 (22)

使用Python Django框架做一个音乐网站, 本篇音乐播放器功能完善:顺序播放、设置播放数、歌词滚动等功能。 目录 顺序播放 设置顺序播放 单曲播放数 添加路由 视图处理 模板处理 歌词滚动 视图内容返回修改 样式设置 模板内容 歌词滚动脚本 歌…

【C++代码】安排行程,N皇后,解数独--代码随想录

题目:重新安排行程 给你一份航线列表 tickets ,其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。所有这些机票都属于一个从 JFK(肯尼迪国际机场)出发的先生,所以该行程必…

[Docker]二.Docker 镜像,仓库,容器介绍以及详解

一.Docker 镜像,容器,仓库的简单介绍 通俗来讲:镜像相当于VM虚拟机中的ios文件,容器相当于虚拟机系统,仓库相当于系统中的进程或者执行文件,容器是通过镜像创建的 1.镜像 Docker 镜像就是一个 Linux 的文件系统( Root FileSystem ),这个文…

一百九十五、MySQL——MySQL数据库创建只读权限的账号(附流程截图)

一、目的 在团队开发过程中,为了实现数据共享以及避免其他团队修改库表数据,需要提供数据库只读权限的账号,因此以MySQL数据库为例,创建MySQL数据库只读权限的账号 二、实施步骤 (一)第一步,…

栈(Stack)的概念+MyStack的实现+栈的应用

文章目录 栈(Stack)一、 栈的概念1.栈的方法2.源码分析 二、MyStack的实现1.MyStack的成员变量2.push方法3.isEmpty方法和pop方法4.peek方法 三、栈的应用1.将递归转化为循环1.调用递归打印2.通过栈逆序打印链表 栈(Stack) 一、 栈…

Nginx动静分离

为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。 在动静分离的tomcat的时候比较明显,因为tomcat解析静态很慢,其实这些原理的话都很好理解,简单来说&…

T113-S3-buildroot文件系统tar解压缩gz文件

目录 前言 一、现象描述 二、解决方案 三、tar解压缩.gz文件 总结 前言 本文主要介绍全志T113-S3平台官方SDK,buildroot文件系统tar不支持.gz文件解压缩的问题以及如何配置buildroot文件系统解决该问题的方法介绍。 一、现象描述 在buildroot文件系统中&#xff…

Doceker-compose——容器群集编排管理工具

目录 Docker-compose 1、Docker-compose 的三大概念 2、YAML文件格式及编写注意事项 1)使用 YAML 时需要注意下面事项 2)ymal文件格式 3)json格式 3、Docker Compose配置常用字段 4、Docker-compose的四种重启策略 5、Docker Compos…

强劲升级,太极2.x你值得拥有!

嗨,大家好,最近桃桃没顾得上给大家分享好用好玩的软件。 还记得前段时间给大家分享的太极1.0软件? 最近大佬对软件进行了全新升级,升级后的功能更强更稳定,轻度用户使用基本功能就已经足够了,壕无人性的同学…

Openssl数据安全传输平台004:Socket C-API封装为C++类 / 服务端及客户端代码框架和实现

文章目录 0. 代码仓库1. 客户端C API2. 客户端C API的封装分析2.1 sckClient_init()和sckClient_destroy()2.2 sckClient_connect2.3 sckClient_closeconn()2.4 sckClient_send()2.5 sckClient_rev()2.6 sck_FreeMem 3. 客户端C API4. 服务端C API5. 服务端C6. 客户端和服务端代…

Ubuntu 安装 npm 和 node

前言 最近学习VUE,在ubuntu 2204 上配置开发环境,涉及到npm node nodejs vue-Cli脚手架等内容,做以记录。 一、node nodejs npm nvm 区别 ? node 是框架,类似python的解释器。nodejs 是编程语言,是js语言的…

题目 1053: 二级C语言-平均值计算(python详解)——练气三层初期

✨博主:命运之光 🦄专栏:算法修炼之练气篇(C\C版) 🍓专栏:算法修炼之筑基篇(C\C版) 🍒专栏:算法修炼之练气篇(Python版) ✨…

外网nat+nat server,内网做路由过滤,以及ppp CHAR认证 企业网搭建

作业 网络拓扑图如下所示: 要求:做适当的截图,表示完成相应的操作。 按照网络拓扑要求搭建网络结构,按照个人学号配置每个节点的IP地址,其中X为班级号,Y为学号末尾2位;Y1为学号末尾2位1&#…

uniapp接入萤石微信小程序插件

萤石官方提供了一些适用于uniapp / 小程序的方案 如 小程序半屏 hls rtmp 等 都TM有坑 文档写的依托答辩 本文参考了uniapp小程序插件 以及 萤石微信小程序插件接入文档 效果如下 1. 插件申请 登录您的小程序微信公众平台,点击左侧菜单栏,进入设置页…

【超详细】CentOS 7安装MySQL 5.7【安装及密码配置、字符集配置、远程连接配置】

准备工作:CentOS 7系统,并确保可以联通网络 1、获取MySQL 5.7 Community Repository软件包 注意:这里使用的是root用户身份。 wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm2、安装软件包 rpm -ivh mysql5…

OpenCV中world模块介绍

OpenCV中有很多模块,模块间保持最小的依赖关系,用户可以根据自己的实际需要链接相关的库,而不需链接所有的库,这样在最终交付应用程序时可以减少总库的大小。但如果需要依赖OpenCV的库太多,有时会带来不方便,此时可以使…

线上答题活动小程序结合线下大屏复盘总结

线上答题活动小程序结合线下大屏复盘总结 ~ 说来话长,这个活动也接近尾声了,从刚开始着手开发,到现在已过去半年,好不夸张的,当时从4月份开始接触,现在已经十月份了 该小程序我发下主界面截图&#xff0…

【RocketMQ集群】Linux搭建RocketMQ双主双从集群

在当今大数据时代,消息队列系统成为了构建高可用、可扩展和可靠的分布式应用的重要组件之一。而Apache RocketMQ作为一款开源的分布式消息中间件,以其高吞吐量、低延迟和可靠性而备受青睐。为了满足大规模应用的需求,搭建RocketMQ集群是一种常…

JavaScript进阶 第二天笔记

JavaScript 进阶 - 第2天 了解面向对象编程的基础概念及构造函数的作用,体会 JavaScript 一切皆对象的语言特征,掌握常见的对象属性和方法的使用。 了解面向对象编程中的一般概念能够基于构造函数创建对象理解 JavaScript 中一切皆对象的语言特征理解引用…
最新文章