赞
踩
DNN(全连接):和CNN相比,拥有巨大的参数量,CNN权重共享因此参数量小很多。
RNN主要是处理带有时间序列特征的数据(前后文拥有逻辑关系)
以上的RNN cell为同一个线形层(处理一个序列),其实以上是一个循环:
RNN Cell具体计算过程如下:
假设有以下这些条件:
RNNCell的输入、输出的维度就应该是:
数据集的形状应该是:
seqLen应该放在最前面,方便循环。
#练习1 import torch batch_size=1 seq_len=3 input_size=4 hidden_size=2 #构建RNNcell,RNNcell本质是一个Linear层 cell=torch.nn.RNNCell(input_size=input_size,hidden_size=hidden_size) #(seq,batch,feartures) #产生形状为(seq_len,batch_size,input_size)的序列 dataset= torch.randn(seq_len,batch_size,input_size) #初始化hidden为0 hidden =torch.zeros(batch_size,hidden_size) for idx, input in enumerate (dataset):#遍历datset中的序列 print('='*20,'='*20) print('Input size:',input.shape)#[1, 4] hidden=cell(input,hidden)#上一个的output作为下一个的hidden print('output size:',hidden.shape) #[1, 2],output size=hidden size,上一个的output作为下一个的hidden print(hidden)
结果:
==================== ====================
Input size: torch.Size([1, 4])
output size: torch.Size([1, 2])
tensor([[-0.4549, 0.6699]], grad_fn=<TanhBackward0>)
==================== ====================
Input size: torch.Size([1, 4])
output size: torch.Size([1, 2])
tensor([[-0.7693, 0.1919]], grad_fn=<TanhBackward0>)
==================== ====================
Input size: torch.Size([1, 4])
output size: torch.Size([1, 2])
tensor([[0.2945, 0.8171]], grad_fn=<TanhBackward0>)
inputs:全部的输入序列;shape=(
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/295680
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。