当前位置: 首页 > news >正文

阿里巴巴外贸订单网站it培训班真的有用吗

阿里巴巴外贸订单网站,it培训班真的有用吗,做网站项目需要多少钱,做的网站如何投入搜索引擎文章目录 门控循环单元GRU1.门控隐状态1.1重置门和更新门1.2候选隐状态1.3隐状态 2.从零开始实现2.1读取数据2.2初始化模型参数2.3定义模型2.4训练与预测 3.简洁实现 门控循环单元GRU 学习视频:门控循环单元(GRU)【动手学深度学习v2】 官方…

文章目录

  • 门控循环单元GRU
    • 1.门控隐状态
      • 1.1重置门和更新门
      • 1.2候选隐状态
      • 1.3隐状态
    • 2.从零开始实现
      • 2.1读取数据
      • 2.2初始化模型参数
      • 2.3定义模型
      • 2.4训练与预测
    • 3.简洁实现

门控循环单元GRU

学习视频:门控循环单元(GRU)【动手学深度学习v2】

官方笔记: 门控循环单元(GRU)

image-20230909102736928

思考一下这种梯度异常在实践中的意义:

  • 我们可能会遇到这样的情况:早期观测值对预测所有未来观测值具有非常重要的意义。 考虑一个极端情况,其中第一个观测值包含一个校验和, 目标是在序列的末尾辨别校验和是否正确。 在这种情况下,第一个词元的影响至关重要。 我们希望有某些机制能够在一个记忆元里存储重要的早期信息。 如果没有这样的机制,我们将不得不给这个观测值指定一个非常大的梯度, 因为它会影响所有后续的观测值。
  • 我们可能会遇到这样的情况:一些词元没有相关的观测值。 例如,在对网页内容进行情感分析时, 可能有一些辅助HTML代码与网页传达的情绪无关。 我们希望有一些机制来跳过隐状态表示中的此类词元。
  • 我们可能会遇到这样的情况:序列的各个部分之间存在逻辑中断。 例如,书的章节之间可能会有过渡存在, 或者证券的熊市和牛市之间可能会有过渡存在。 在这种情况下,最好有一种方法来重置我们的内部状态表示。

在学术界已经提出了许多方法来解决这类问题。 其中最早的方法是“长短期记忆”(long-short-term memory,LSTM), 门控循环单元(gated recurrent unit,GRU)是一个稍微简化的变体,通常能够提供同等的效果,并且计算的速度明显更快。

1.门控隐状态

门控循环单元与普通的循环神经网络之间的关键区别在于: 前者支持隐状态的门控。 这意味着模型有专门的机制来确定应该何时更新隐状态, 以及应该何时重置隐状态。 这些机制是可学习的,并且能够解决了上面列出的问题。 例如,如果第一个词元非常重要, 模型将学会在第一次观测之后不更新隐状态。 同样,模型也可以学会跳过不相关的临时观测。 最后,模型还将学会在需要的时候重置隐状态。 下面我们将详细讨论各类门控。

1.1重置门和更新门

我们首先介绍重置门(reset gate)和更新门(update gate)。 我们把它们设计成(0,1)区间中的向量, 这样我们就可以进行凸组合。 重置门允许我们控制“可能还想记住”的过去状态的数量; 更新门将允许我们控制新状态中有多少个是旧状态的副本。

image-20230909104314999

1.2候选隐状态

image-20230909104608771

1.3隐状态

image-20230909105341463

门控循环单元具有以下两个显著特征:

  • 重置门有助于捕获序列中的短期依赖关系
  • 更新们有助于捕获序列中的长期依赖关系

2.从零开始实现

2.1读取数据

import torch
from torch import nn
from d2l import torch as d2lbatch_size, num_steps = 32, 35
train_iter, vocab = d2l.load_data_time_machine(batch_size, num_steps)

2.2初始化模型参数

下一步是初始化模型参数。 我们从标准差为0.01的高斯分布中提取权重, 并将偏置项设为0,超参数num_hiddens定义隐藏单元的数量, 实例化与更新门、重置门、候选隐状态和输出层相关的所有权重和偏置。

def get_params(vocab_size, num_hiddens, device):num_inputs = num_outputs = vocab_sizedef normal(shape):return torch.randn(size=shape, device=device)*0.01def three():return (normal((num_inputs, num_hiddens)),normal((num_hiddens, num_hiddens)),torch.zeros(num_hiddens, device=device))W_xz, W_hz, b_z = three()  # 更新门参数W_xr, W_hr, b_r = three()  # 重置门参数W_xh, W_hh, b_h = three()  # 候选隐状态参数# 输出层参数W_hq = normal((num_hiddens, num_outputs))b_q = torch.zeros(num_outputs, device=device)# 附加梯度params = [W_xz, W_hz, b_z, W_xr, W_hr, b_r, W_xh, W_hh, b_h, W_hq, b_q]for param in params:param.requires_grad_(True)return params

2.3定义模型

现在我们将定义隐状态的初始化函数init_gru_state,与之前定义的init_rnn_state函数一样, 此函数返回一个形状为(批量大小,隐藏单元个数)的张量,张量的值全部为零。

def init_gru_state(batch_size, num_hiddens, device):return (torch.zeros((batch_size, num_hiddens), device=device), )

现在我们准备定义门控循环单元模型, 模型的架构与基本的循环神经网络单元是相同的, 只是权重更新公式更为复杂。

def gru(inputs, state, params):W_xz, W_hz, b_z, W_xr, W_hr, b_r, W_xh, W_hh, b_h, W_hq, b_q = paramsH, = stateoutputs = []for X in inputs:Z = torch.sigmoid((X @ W_xz) + (H @ W_hz) + b_z)R = torch.sigmoid((X @ W_xr) + (H @ W_hr) + b_r)H_tilda = torch.tanh((X @ W_xh) + ((R * H) @ W_hh) + b_h)H = Z * H + (1 - Z) * H_tildaY = H @ W_hq + b_qoutputs.append(Y)return torch.cat(outputs, dim=0), (H,)

2.4训练与预测

训练和预测的工作方式与之前一样

vocab_size, num_hiddens, device = len(vocab), 256, d2l.try_gpu()
num_epochs, lr = 500, 1
model = d2l.RNNModelScratch(len(vocab), num_hiddens, device, get_params,init_gru_state, gru)
d2l.train_ch8(model, train_iter, vocab, lr, num_epochs, device)

3.简洁实现

高级API包含了前文介绍的所有配置细节, 所以我们可以直接实例化门控循环单元模型。 这段代码的运行速度要快得多, 因为它使用的是编译好的运算符而不是Python来处理之前阐述的许多细节。

num_inputs = vocab_size
gru_layer = nn.GRU(num_inputs, num_hiddens)
model = d2l.RNNModel(gru_layer, len(vocab))
model = model.to(device)
d2l.train_ch8(model, train_iter, vocab, lr, num_epochs, device)
http://www.dinnco.com/news/6009.html

相关文章:

  • php网站病毒营销型网站的分类不包含
  • 网站开发实践感想如何设计网站
  • 管理系统网站模板下载如何推广网店
  • 商城网站如何建设灰色关键词怎么做排名
  • 教育行业网站建设价格百度软件市场
  • 网站建设摊销市场调研报告怎么写的
  • 泸州北京网站建设东莞营销网站建设推广
  • 个人微信小程序怎么赚钱北京seo优化哪家好
  • 专业制作证件网站chatgpt网址
  • php 移动网站开发品牌营销策划公司哪家好
  • 滕州哪里有做网站的b2b免费发布网站大全
  • 餐饮公司做网站的好处b2b关键词排名工具
  • 自己的公网ip可以做网站销售技巧和话术
  • 邯郸网站设计服务平台360识图
  • wordpress keywords免费seo在线工具
  • 嘉兴高端网站建设品牌关键词优化哪家便宜
  • flashfxp怎么做网站百度关键词点击
  • 网站制作联盟网站开发公司哪家好
  • 网站怎么做三级的做网站企业
  • 自己的电脑做网站当服务器使用刷关键词排名软件有用吗
  • 珠海网站建设网络公司怎么样站长工具seo综合查询
  • 大图模板网站网站制作企业
  • 如何加强企业网站建设 论文6品牌策略怎么写
  • 品牌网站建设c股j东大蝌蚪和业务多一样的平台
  • 自己公司做公益网站怎么弄seo排名赚挂机
  • wordpress搜索功能优化网络优化大师
  • 百度联盟的网站怎么做百青藤广告联盟
  • 保姆给老人做爰神马网站承德seo
  • 辽阳网站建设公司百度推广多少钱一天
  • 口碑好的o2o网站建设百度app下载官方免费下载安装