[PyTorch 学习笔记] 8.4 手动实现 RNN

本文详细介绍了如何在PyTorch中手动实现RNN,重点在于处理不定长输入,特别是应用于自然语言处理和时间序列任务。文章通过一个姓名分类的实例,展示了RNN的网络结构、公式及训练过程,包括输入、状态、输出的计算,并且提到了数据处理和参数更新的方式。虽然没有使用DataLoader和Dataset,但给出了如何构造数据集和进行迭代训练的步骤。
摘要由CSDN通过智能技术生成

本章代码:https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson8/rnn_demo.py

这篇文章主要介绍了循环神经网络(Recurrent Neural Network),简称 RNN。

RNN 常用于处理不定长输入,常用于 NLP 以及时间序列的任务,这种数据一半具有前后关系。

RNN 网络结构如下:


上图的数据说明如下:
  • x t x_{t} xt:时刻 t 的输入, s h a p e = ( 1 , 57 ) shape=(1,57) shape=(1,57),表示 (batch_size, feature_dim)。57 表示词向量的长度。
  • s t s_{t} st:时刻 t 的状态值, s h a p e = ( 1 , 128 ) shape=(1,128) shape=(1128),表示 (batch_size, hidden_dim)。这个状态值有两个作用:经过一个全连接层得到输出;输入到下一个时刻,影响下一个时刻的状态值。也称为hedden_state,隐藏层状态信息,记录过往时刻的信息。第一个时刻的 s t s_{t} st 会初始化为全 0 的向量。
  • o
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值