pytorch,tf维度理解RNN

news2024/11/18 3:37:25

input_t = input_t.squeeze(1) 这行代码用于从 input_t 中去除尺寸为1的维度。在深度学习中,经常会出现具有额外尺寸为1的维度,这些维度通常是为了匹配模型的期望输入维度而添加的。

在这里,input_t可能具有形状 (batch_size, 1, feature_dim),其中 1 表示时间步维度。在某些情况下,模型可能要求输入不包含时间步维度,而只包含 (batch_size, feature_dim) 的形状。为了适应模型的输入要求,squeeze(1) 被用来删除时间步维度,将 input_t 转换为 (batch_size, feature_dim) 的形状。

输入 (354, 32, 541, 1)
keras.layers.InputLayer(input_shape=(None, N, channels)),
TimeDistributed(Conv1D(18, 5, strides=3, activation=“relu”)), (354, 32, 179, 18) 108
TimeDistributed(Conv1D(20, 5, strides=2, activation=“relu”)), (354, 32, 88, 20) 1820
TimeDistributed(MaxPool1D()) (354, 32, 44, 20) 0
TimeDistributed(Conv1D(22, 5, activation=“relu”)) (354, 32, 40, 22) 2222
TimeDistributed(MaxPool1D()) (354, 32, 20, 22) 0
TimeDistributed(Conv1D(24, 5, activation=“relu”)) (354, 32, 16, 24) 2664
TimeDistributed(Flatten()) (354, 32, 384) 0
卷积层本质上是对一条数据进行各种特征变换(channel),最后经过Flatten降维,从二维的空间变回序列数据,交给RNN处理
TimeDistributed(Dense(32, activation=“relu”) (354, 32, 32) 12320
SimpleRNN(19, return_sequences=True) (354, 32, 19) 988
TimeDistributed(Dense(1)) (354, 32, 1) 20

为什么输入一定是四维的,后面都是四维,why?
这里我把T和channel弄混了,平常所说的Conv1d这种是没有T这个维度的,但是有channel这个维度。即,原本的Conv1d是三维的,现在加上时间T这个维度,一共四维

TimeDistributed输入至少为 3D(bs, time, feature),其中index = 1应该是时间所表示的维度
在这里插入图片描述
所以解释了,这里的None指的是T维度,因为input_shape是不包含batch维度
在这里插入图片描述
在这里插入图片描述
对于RNN:如果 return_sequences:返回 3D 张量, 尺寸为 (batch_size, timesteps, units)。
否则,返回尺寸为 (batch_size, units) 的 2D 张量

Conv1D的输入输出,pytorch和tf有何区别,维度分别是多少?
卷积是没有时间维度的!seq_len(T)维度(纵向的),这里的L准确来说是input_size(横向的)
Pytorch Conv1d:
Input:( N , C i n , L ) N, C_{in},L) N,Cin,L) L是指sequence length, C指channel数量
Output: ( N , C o u t , L o u t ) (N, C_{out}, L_{out}) (N,Cout,Lout)
like Conv2d:
Input: ( N , C i n , H , W ) (N, C_{in}, H, W) (N,Cin,H,W)
Onput: ( N , C o u t , H o u t , W o u t ) (N, C_{out}, H_{out}, W_{out}) (N,Cout,Hout,Wout)

TensorFlow:
Conv1d:(batch_size, seq_len, channels) 受data_format = “channels_last (默认) / first” 参数控制
tf的设计理念是,除了第一个inputlayer,其他层都不需要给出输入的维度,模型会自动算出。且input layer给出的维度是不包含 batch 轴的。
首先在写模型的时候,keras.layers.Conv1D(filters, kernel_size)第一个参数就是outchannel,tf中是缺省了输入维度的,会自动匹配。其中filters的数量你可以想象成你想提取多少个“特征”

RNN和RNNCELL输入
在PyTorch中可以使用下面两种方式去调用,分别是torch.nn.RNNCell()和torch.nn.RNN(),这两种方式的区别在于RNNCell()只能接受序列中单步的输入,且必须传入隐藏状态,而RNN()可以接受一个序列的输入,默认会传入全0的隐藏状态,也可以自己申明隐藏状态传入。
如果用RNNCell()就相当于要必须在外面加个for循环,进行seq_len次forward,显式地将hidden传入给下一次forward。

batch的理解
大多数情况可以直接忽略batch,因为他就是数据处理的一种并行化方式。但需要知道几个基础知识,比如模型参数是共享的,但是hidden state [bs, hidden state],这种有bs的肯定不是共享的,hidden state就是记录状态用的。

总结
RNN关心序列维度,缺省为单通道RNN,[bs, seq_len, input_size, 1]—>[bs,seq_len,input_size]
所以在把数据给RNN之前,都要把数据处理成上述样子。
CNN才关心Channel,而不关心seq_len,所以是[bs, channel, …]
最大的问题在于忽略了Channel这一维度,其实称之为特征维度:无论是1d,2d,3d都是在描述数据的多少,比如一个序列长度为12,比如一个图片的像素点有12 * 12个。
但是如果一个序列被三个传感器x,y,z检测记录,合起来组成这一个数据点,那么描述这一个数据点需要三个“特征”,channel = 3;同样,对于每个像素点的特征数量是3,所以channel = 3.

无论batchsize还是seq_len都是用来方便处理数据的,要区分于数据本身的特征:特征维度,共有多少个特征,每个特征几维

为什么需要TimeDistributed?
首先对于卷积操作来说维度是固定的,就像函数传参一样,不是任意长度的。

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

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

相关文章

青否数字人SaaS系统5.0发布,支持真人接管实时驱动!

青否数字人SaaS系统5.0正式发布,提供口播视频批量制作7*24小时直播全套解决方案。同时直播间支持真人开麦/输入文字选择音色接管,实时驱动直播间数字人回复。 7*24小时直播 青否数字人客户端选择克隆好的数字人主播,克隆好的声音&#xff0…

实现vue项目和springboot项目前后端数据交互

1、安装node.js 太高版本的win7不支持 这里安装node-v12.16.2-x64.msi,指定安装位置后直接按下一步就可以。npm是node内置的工具 这里配置npm的镜像cnpm(提高下载速度,以后用到npm的命令都可以用cnpm命令替换)不指定cnpm版本使用…

Tuxera2023最新版本新功能特性

当您获得一台新 Mac 时,它只能读取 Windows NTFS 格式的 USB 驱动器。要将文件添加、保存或写入您的 Mac,您需要一个附加的 NTFS 驱动程序。Tuxera 的 Microsoft NTFS for Mac 是一款易于使用的软件,可以在 Mac 上打开、编辑、复制、移动或删…

【论文阅读笔记】 Curated Pacific Northwest AI-ready Seismic Dataset

Curated Pacific Northwest AI-ready Seismic Dataset 太平洋西北部人工智能地震数据集 摘要 描述了一个AI就绪地震数据集包括各种地震事件参数 仪器元数据 地震波行描述地震目录和事件属性(事件震级类型,信道类型,波形极性,信…

【框架源码篇 02】Spring源码-手写DI

Spring源码手写篇-手写DI 简单回顾前面的手写IoC的内容。 一、DI介绍 DI(Dependency injection)依赖注入。对象之间的依赖由容器在运行期决定,即容器动态的将某个依赖注入到对象之中。说的直白点就是给Bean对象的成员变量赋值。 在这里我们就需要明白几个问题。 1.…

【进阶C语言】C语言文件操作

1. 为什么使用文件 2. 什么是文件 3. 文件的打开和关闭 4. 文件的顺序读写 5. 文件的随机读写 6. 文本文件和二进制文件 7. 文件读取结束的判定 8. 文件缓冲区 一、文件与文件的意义 1.文件的意义 文件的意义,无非就是为什么要使用文件? (1&…

当中国走进全球化的“深水区”,亚马逊云科技解码云时代的中国式跃升

中国跨境贸易中支付金融与服务领域的综合创新型企业连连国际的联席CEO沈恩光发现,眼下,很多跨境电商的出海方式已发生了变化。几年前,它们还主要借助第三方电商平台,而现在,更多公司开始选择通过自主渠道进入海外市场&…

线性代数-Python-01:向量的基本运算 - 手写Vector及numpy的基本用法

文章目录 一、代码仓库二、向量的基本运算2.1 加法2.2 数量乘法2.3 向量运算的基本性质2.4 零向量2.5 向量的长度2.6 单位向量2.7 点乘/内积:两个向量的乘法 --答案是一个标量 三、手写Vector代码3.1 在控制台测试__repr__和__str__方法3.2 创建实例测试代码3.3 完整…

磁盘显示脱机状态如何处理

问题描述: 在磁盘管理可以看到磁盘1是脱机状态 脱机(由于管理员设置的策略,该磁盘处于脱机状态) 解决方法一:CMD窗口处理 1.打开CMD,运行diskpart 2.输入san,打开san策略, 输入san…

2防火墙:基础知识

看了一下相关视频,感觉要会防火墙,还是得补一下网络基础。看一下谢希仁的《计算机网络》,应该主要看网络层就可以。网络以前学的还可以,但现在也就能记得不到50%,正好重新学习一下,或许会有新的感受。 看完…

S4.2.4.3 Electrical Idle Sequence(EIOS)

一 本章节主讲知识点 1.1 EIOS的具体码型 1.2 EIOS的识别规则 1.3 EIEOS的具体码型 二 本章节原文翻译 当某种状态下,发送器想要进入电器空闲状态的时候,发送器必须发送EIOSQ,也既是:电器Electrical Idle Odered Set Sequence。当然,除非在某些情况下,特殊制定,也是…

用这个方法,谁都可以刷到leetcode排名第一(可复制)

前几天,有人分享了一个利用GPT在leetcode刷题,学习算法,启迪思路,提升编程能力的方法。 开始还不信,自己试了一下,惊了!AI理解问题,编码解决问题的能力现在已经这么流弊了吗&#xf…

【具身智能综述1】A Survey of Embodied AI: From Simulators to Research Tasks

论文标题:A Survey of Embodied AI: From Simulators to Research Tasks 论文作者:Jiafei Duan, Samson Yu, Hui Li Tan, Hongyuan Zhu, Cheston Tan 论文原文:https://arxiv.org/abs/2103.04918 论文出处:IEEE Transactions on E…

正则表达式之学习笔记

正则表达式学习笔记 一、概念二、正则表达式组成三、常见的正则表达式3.1 .匹配任意字符3.2 * 匹配前一个字符的0个或多个实例3.3 ^ 匹配输入字符串的开头3.4 $ 匹配行尾3.5 [] 匹配字符集合\<\> 精确匹配符号 一、概念 正则表达式是由一系列特殊字符组成的字符串&#…

大数据分析实践 | pandas数据质量分析

文章目录 &#x1f4da;数据质量评估的五个维度&#x1f4da;口袋妖怪数据质量分析&#x1f407;导入库和数据&#x1f407;检查数据&#x1f407;缺失值分析&#x1f407;重复值检测&#x1f407;异常值检测 &#x1f4da;数据质量评估的五个维度 Coherent: without semantic …

Jetson nano 安装Ubuntu20.04系统

一、下载Ubuntu20.04镜像 下载地址&#xff1a;点击 二、格式化SD卡 &#xff08;1&#xff09;工具&#xff1a;SDFormatter &#xff08;2&#xff09;工具下载-百度网盘&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1DcwsGzmqrWwFmzpCV7VCyA 提取码&#xff1a…

【LeetCode】62. 不同路径

1 问题 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xff1f…

【Python】13.模块

目录 1. 模块化(module)程序设计理念1.1 模块和包概念的进化史1.2 标准库模块(standard library)1.3 为什么需要模块化编程1.4 模块化编程的流程1.5 模块的API 和功能描述要点1.6 模块的创建和测试代码1.7 模块文档字符串和API 设计 2. 模块的导入2.1 import 语句导入2.2 from……

Spark--经典SQL50题

目录 连接数据库准备工作 1、查询"01"课程比"02"课程成绩高的学生的信息及课程分数 2、查询"01"课程比"02"课程成绩低的学生的信息及课程分数 3、查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩 4、查询平均成绩…

ZCU106+ADRV9371+CPRO33-30.72+6 dB 衰减

文章目录 一、ZYNQ 平台二、ADRV9371三、CPRO33-30.72四、衰减器 一、ZYNQ 平台 之后使用 Zynq UltraScale MPSoC ZCU106&#xff0c;XCZU7EV 器件配备四核 ARM Cortex™-A53 应用处理器、双核 Cortex-R5 实时处理器、Mali™-400 MP2 图形处理单元、支持 4KP60 的 H.264/H.265…