循环神经网络中的采样问题

在构建循环神经网络时,首先需要处理数据集。接下来需要读取数据,对其进行合理采样,即将数据集划分为若干子序列。采样后的数据进行one-hot编码后,即可输入循环神经网络进行学习。

数据集的采样主要分为两种方法,随机采样和顺序分区,接下来依次进行介绍。(本文基于mxnet框架构建,使用Time Machine数据集)

随机采样

随机采样只有每个批量内部一个时间步长度的值是顺序分布的。为更好的了解采样的代码,我们首先解释用到的各种参数。

参数说明

  • num_steps:时间步,即生成的每个序列连续多少个值。
  • batch_size:批量大小,即生成多少批数据
  • corpus:全体语料
  • num_subseqs:生成子列数量(特征-标签对)

函数说明

  • random.shuffle(),标准类库方法,用于将内容打乱。
def seq_data_iter_random(corpus, batch_size, num_steps):  #@save
    """使用随机抽样生成一个小批量子序列"""
    # 从随机偏移量开始对序列进行分区,随机范围包括num_steps-1
    corpus = corpus[random.randint(0, num_steps - 1):]
    # 减去1,是因为我们需要考虑标签
    n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值