一个最基本的RNN训练框架用于多元回归(基于pytorch)

本文
摘要由CSDN通过智能技术生成

0. 摘要

本文主要描述如何搭建一个RNN的基本训练架构.主要从如何读取CSV文件中的数据,构建数据管道. 如何搭建模型,如何在主函数中开启训练.

未完,待更新

1. RNN的基础知识

一个最简单的RNN结构展开图, X(t)表示循环神经网络在时刻t的输入,H是循环神经网络的主体结构,循环的过程就是H被不断执行的过程.O(t)代表t时刻循环神经网路的输出.

简单描述一下具体的过程:

在t时刻,H会读取输入层的输入x(t),并输出一个值O(t),同时H的状态值会从当前步传递到下一步.

也就是讲:H的输入除了来自输入层的输入x(t),还依赖于上一时刻的H(t-1).

一般情况下,输入层的x为下图所示:

为了研究方便,下文的叙述令in_putsize = 1.下面使用

2. 一个RNN小实验

2.1 数据集准备

链接:https://pan.baidu.com/s/1HorFNE5mlDgAvFXU6_JXfQ
提取码:x521
train_data: 里面包含6列数据, 每一行作为一个训练输入, 其对应的输出在train_label所对应的行.

train_label: 里面包含1列数据

2.2 设计设计pytorch的数据管道

设计dataloader    data_loader.py

import torch
import numpy as np

class ImageFolder(torch.utils.data.Dataset):

    def __init__(self, train_data):
        self.data_
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
好的,以下是一个简单的RNN框架,使用PyTorch实现: ``` python import torch import torch.nn as nn class RNN(nn.Module): def __init__(self, input_size, hidden_size, output_size): super(RNN, self).__init__() self.hidden_size = hidden_size self.i2h = nn.Linear(input_size + hidden_size, hidden_size) self.i2o = nn.Linear(input_size + hidden_size, output_size) self.softmax = nn.LogSoftmax(dim=1) def forward(self, input, hidden): combined = torch.cat((input, hidden), 1) hidden = self.i2h(combined) output = self.i2o(combined) output = self.softmax(output) return output, hidden def init_hidden(self): return torch.zeros(1, self.hidden_size) ``` 这个RNN框架接受三个参数,分别是: - input_size:输入向量的大小。 - hidden_size:隐藏层向量的大小。 - output_size:输出向量的大小。 在类的初始化函数中,我们定义了三个神经网络层: - i2h:输入到隐藏层的线性层。 - i2o:输入到输出层的线性层。 - softmax:log softmax层,用于将输出向量转换为概率分布。 在forward函数中,我们将输入向量和隐藏层向量拼接起来,然后通过i2h和i2o层得到新的隐藏层向量和输出向量。最后,我们将输出向量通过log softmax层转换为概率分布。 在init_hidden函数中,我们返回一个大小为[1, hidden_size]的全零张量,这个张量将作为第一个时间步的隐藏层向量。 需要注意的是,这个RNN框架只能接受单个时间步的输入。如果需要处理多个时间步的序列数据,需要使用PyTorch中的nn.RNN或nn.LSTM等预定义模块。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

两只蜡笔的小新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值