色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>PyTorch教程之從零開始的遞歸神經網絡實現

PyTorch教程之從零開始的遞歸神經網絡實現

2023-06-05 | pdf | 0.36 MB | 次下載 | 免費

資料介紹

我們現在準備好從頭開始實施 RNN。特別是,我們將訓練此 RNN 作為字符級語言模型(參見 第 9.4 節),并按照第 9.2 節中概述的數據處理步驟,在由 HG Wells 的《時間機器》的整個文本組成的語料庫上對其進行訓練. 我們首先加載數據集。

%matplotlib inline
import math
import torch
from torch import nn
from torch.nn import functional as F
from d2l import torch as d2l
%matplotlib inline
import math
from mxnet import autograd, gluon, np, npx
from d2l import mxnet as d2l

npx.set_np()
%matplotlib inline
import math
import jax
from flax import linen as nn
from jax import numpy as jnp
from d2l import jax as d2l
%matplotlib inline
import math
import tensorflow as tf
from d2l import tensorflow as d2l

9.5.1. 循環神經網絡模型

我們首先定義一個類來實現 RNN 模型(第 9.4.2 節)。請注意,隱藏單元的數量num_hiddens是一個可調的超參數。

class RNNScratch(d2l.Module): #@save
  """The RNN model implemented from scratch."""
  def __init__(self, num_inputs, num_hiddens, sigma=0.01):
    super().__init__()
    self.save_hyperparameters()
    self.W_xh = nn.Parameter(
      torch.randn(num_inputs, num_hiddens) * sigma)
    self.W_hh = nn.Parameter(
      torch.randn(num_hiddens, num_hiddens) * sigma)
    self.b_h = nn.Parameter(torch.zeros(num_hiddens))
class RNNScratch(d2l.Module): #@save
  """The RNN model implemented from scratch."""
  def __init__(self, num_inputs, num_hiddens, sigma=0.01):
    super().__init__()
    self.save_hyperparameters()
    self.W_xh = np.random.randn(num_inputs, num_hiddens) * sigma
    self.W_hh = np.random.randn(
      num_hiddens, num_hiddens) * sigma
    self.b_h = np.zeros(num_hiddens)
class RNNScratch(nn.Module): #@save
  """The RNN model implemented from scratch."""
  num_inputs: int
  num_hiddens: int
  sigma: float = 0.01

  def setup(self):
    self.W_xh = self.param('W_xh', nn.initializers.normal(self.sigma),
                (self.num_inputs, self.num_hiddens))
    self.W_hh = self.param('W_hh', nn.initializers.normal(self.sigma),
                (self.num_hiddens, self.num_hiddens))
    self.b_h = self.param('b_h', nn.initializers.zeros, (self.num_hiddens))
class RNNScratch(d2l.Module): #@save
  """The RNN model implemented from scratch."""
  def __init__(self, num_inputs, num_hiddens, sigma=0.01):
    super().__init__()
    self.save_hyperparameters()
    self.W_xh = tf.Variable(tf.random.normal(
      (num_inputs, num_hiddens)) * sigma)
    self.W_hh = tf.Variable(tf.random.normal(
      (num_hiddens, num_hiddens)) * sigma)
    self.b_h = tf.Variable(tf.zeros(num_hiddens))

下面的方法forward定義了如何計算任何時間步的輸出和隱藏狀態,給定當前輸入和模型在前一個時間步的狀態。請注意,RNN 模型循環遍歷 的最外層維度inputs,一次更新隱藏狀態。這里的模型使用了tanh激活函數(第 5.1.2.3 節)。

@d2l.add_to_class(RNNScratch) #@save
def forward(self, inputs, state=None):
  if state is None:
    # Initial state with shape: (batch_size, num_hiddens)
    state = torch.zeros((inputs.shape[1], self.num_hiddens),
             device=inputs.device)
  else:
    state, = state
  outputs = []
  for X in inputs: # Shape of inputs: (num_steps, batch_size, num_inputs)
    state = torch.tanh(torch.matmul(X, self.W_xh) +
             torch.matmul(state, self.W_hh) + self.b_h)
    outputs.append(state)
  return outputs, state
@d2l.add_to_class(RNNScratch) #@save
def forward(self, inputs, state=None):
  if state is None:
    # Initial state with shape: (batch_size, num_hiddens)
    state = np.zeros((inputs.shape[1], self.num_hiddens),
             ctx=inputs.ctx)
  else:
    state, = state
  outputs = []
  for X in inputs: # Shape of inputs: (num_steps, batch_size, num_inputs)
    state = np.tanh(np.dot(X, self.W_xh) +
             np.dot(state, self.W_hh) + self.b_h)
    outputs.append(state)
  return outputs, state
@d2l.add_to_class(RNNScratch) #@save
def __call__(self, inputs, state=None):
  if state is not None:
    state, = state
  outputs = []
  for X in inputs: # Shape of inputs: (num_steps, batch_size, num_inputs)
    state = jnp.tanh(jnp.matmul(X, self.W_xh) + (
      jnp.matmul(state, self.W_hh) if state is not None else 0)
             + self.b_h)
    outputs.append(state)
  return outputs, state
@d2l.add_to_class(RNNScratch) #@save
def forward(self, inputs, state=None):
  if state is None:
    # Initial state with shape: (batch_size, num_hiddens)
    state = tf.zeros((inputs.shape[1], self.num_hiddens))
  else:
    state, = state
    state = tf.reshape(state, (-1, self.num_hiddens))
  outputs = []
  for X in inputs: # Shape of inputs: (num_steps, batch_size, num_inputs)
    state = tf.tanh(tf.matmul(X, self.W_xh) +
             tf.matmul(state, self.W_hh) + self.b_h)
    outputs.append(state)
  return outputs, state

我們可以將一小批輸入序列輸入 RNN 模型,如下所示。

batch_size, num_inputs, num_hiddens, num_steps = 2, 16, 32, 100
rnn = RNNScratch(num_inputs, num_hiddens)
X = torch.ones((num_steps, batch_size, num_inputs))
outputs, state = rnn(X)
batch_size, num_inputs, num_hiddens, num_steps = 2, 16, 32, 100
rnn = RNNScratch(num_inputs, num_hiddens)
X = np.ones((num_steps, batch_size, num_inputs))
outputs, state = rnn(X)
batch_size, num_inputs, num_hiddens, num_steps = 2, 16, 32, 100
rnn = RNNScratch(num_inputs, num_hiddens)
X = jnp.ones((num_steps, batch_size, num_inputs))
(output

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

请按住滑块,拖动到最右边
了解新功能

查看更多

广告

下載排行

本周

  1. 1Python從入門到精通背記手冊
  2. 18.77 MB   |  14次下載  |  1 積分
  3. 2SX1308應用電路圖與SX1308升壓電路圖
  4. 0.18 MB   |  8次下載  |  1 積分
  5. 3PC212線性恒流LED驅動芯片中文手冊
  6. 1.08 MB   |  3次下載  |  免費
  7. 4單電源板1875電路圖
  8. 0.06 MB   |  3次下載  |  免費
  9. 5aP89W24 USB語音芯片燒錄器中文手冊
  10. 1.58 MB   |  2次下載  |  免費
  11. 6ACDC茂睿芯MK2687寬供電范圍高效率反激 PWM 控制器
  12. 2.28 MB  |  1次下載  |  免費
  13. 7直流無刷電機SPWM正弦波控制原理(可下載)
  14. 619.62 KB  |  1次下載  |  免費
  15. 8HT7712 4.5V~18V輸入,2.5A同步降壓變換器中文手冊
  16. 1.27 MB   |  1次下載  |  免費

本月

  1. 1DeepSeek從入門到精通
  2. 5.07 MB   |  50次下載  |  免費
  3. 2第十一屆 藍橋杯 單片機設計與開發項目 省賽 程序設計試題及源碼
  4. 90.88KB   |  23次下載  |  3 積分
  5. 3NR-E531TX-XN冰箱說明書
  6. 8.64 MB   |  23次下載  |  免費
  7. 4Python從入門到精通背記手冊
  8. 18.77 MB   |  14次下載  |  1 積分
  9. 5STM32單片機無人機設計
  10. 8.81 MB   |  11次下載  |  免費
  11. 6華為硬件工程師手冊目前最全版本
  12. 1.02 MB   |  10次下載  |  2 積分
  13. 7SX1308應用電路圖與SX1308升壓電路圖
  14. 0.18 MB   |  8次下載  |  1 積分
  15. 8MAX9295電路圖
  16. 0.14 MB   |  6次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935126次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關降壓/升壓雙向直流/直流轉換器 PCB layout 設計
  4. 1.48MB  |  420063次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233088次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191377次下載  |  10 積分
  9. 5十天學會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183336次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81584次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73814次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65988次下載  |  10 積分
主站蜘蛛池模板: 狠狠色狠狠色综合 | 欧美日韩高清一区二区三区 | 老师的快感电影完整版 | 国产精品99久久久久久宅男AV | 三级网站视频 | 大胆国模一区二区三区伊人 | 女性露出奶头流出精子 | 亚洲伊人网站 | 囯产愉拍亚洲精品一区 | 国产精品97久久AV色婷婷综合 | 精品国产精品人妻久久无码五月天 | 婷婷综合久久狠狠色 | 男人的天堂久久精品激情a 男人的天堂黄色片 | 欧美日韩亚洲成人 | 无限资源在线观看完整版免费下载 | 十分钟免费观看大全视频 | 日韩一本在线 | 久久re亚洲在线视频 | 97精品在线观看 | 天天爽夜夜爽夜夜爽 | 啪啪羞羞GIF男女0OXX动态图 | 成年人视频在线免费 | 国产一区精选播放022 | 如懿传免费观看在线全集 | 床伴在线观看免费高清完整泰剧第四集 | 亚洲精品久久久久久偷窥 | 97人妻久久久精品系列A片 | 欧洲另类一二三四区 | 99精品无码AV在线播放 | 精品一产品大全 | 亚洲综合色婷婷在线影院 | yellow在线观看免费高清的日本 | 好满射太多了装不下了视频 | 日本一区精品久久久久影院 | 大稥焦伊人一本dao 大香伊人中文字幕精品 | 99视频偷窥在线精品国自产拍 | 亚洲手机在线人成视频 | 无敌在线视频观看免费 | 久久免费精彩视频 | 九热这里只有精品 | 私人玩物在线观看 |