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

网站建设太原辽宁seo推广公司

网站建设太原,辽宁seo推广公司,网络运维工作内容及过程,顺德定制网站建设RNN基本介绍 概述 循环神经网络#xff08;Recurrent Neural Network#xff0c;RNN#xff09;是一种深度学习模型#xff0c;主要用于处理序列数据#xff0c;如文本、语音、时间序列等具有时序关系的数据。 核心思想 RNN的关键思想是引入了循环结构#xff0c;允许…RNN基本介绍 概述 循环神经网络Recurrent Neural NetworkRNN是一种深度学习模型主要用于处理序列数据如文本、语音、时间序列等具有时序关系的数据。 核心思想 RNN的关键思想是引入了循环结构允许信息在网络内部进行传递。与传统的前馈神经网络Feedforward Neural Network不同RNN在处理序列数据时会保留并利用先前的信息来影响后续的输出。 基本结构 RNN的基本结构是一个被称为“循环单元”recurrent unit的模块它接收输入和先前的隐藏状态并生成输出和新的隐藏状态。循环单元中的权重参数在时间步之间是共享的这意味着它可以对序列中的不同位置应用相同的操作。 计算过程 RNN在每个时间步的计算过程如下 1.接收当前时间步的输入和先前时间步的隐藏状态。 2.使用这些输入和隐藏状态计算当前时间步的输出。 3.更新隐藏状态以便在下一个时间步使用。 优点 由于RNN具有循环结构它可以在处理序列数据时保持记忆并捕捉到序列中的长期依赖关系。这使得RNN在许多任务中表现出色例如语言建模、机器翻译、语音识别、情感分析等。 缺点 然而传统的RNN在处理长期依赖时存在梯度消失或梯度爆炸的问题导致难以捕捉到远距离的依赖关系。 LSTM基本介绍 概述 LSTMLong Short-Term Memory长短期记忆网络是一种循环神经网络RNN的改进型结构用于解决传统RNN中的长期依赖问题。相比于传统的RNNLSTM引入了门控机制能够更好地捕捉和处理序列数据中的长期依赖关系。 核心思想 LSTM的核心思想是引入了三个门控单元输入门Input Gate、遗忘门Forget Gate和输出门Output Gate。这些门控单元允许LSTM网络选择性地保留或丢弃信息并且在传递信息时能够有效地控制梯度的流动。 基本结构 以下是LSTM中各个门控单元的功能 1.输入门Input Gate决定当前时间步的输入信息中哪些部分需要被记忆。它使用sigmoid函数来产生一个0到1之间的值描述了每个输入的重要性。 2.遗忘门Forget Gate决定之前的隐藏状态中哪些信息需要被遗忘。通过使用sigmoid函数遗忘门可以控制先前的隐藏状态在当前时间步的重要性。 3.输出门Output Gate根据当前时间步的输入和之前的隐藏状态决定应该输出多少信息到下一个时间步。输出门使用sigmoid函数来控制隐藏状态中的信息量并使用tanh函数来生成当前时间步的输出。 优点 通过使用这些门控单元LSTM网络能够在处理序列数据时灵活地控制信息的流动和记忆的保留。这使得LSTM能够更好地处理长期依赖关系并在各种序列建模任务中表现出色例如机器翻译、语音识别、文本生成等。 代码与详细注释 import torch from torch import nn import torchvision.datasets as dsets import torchvision.transforms as transforms import matplotlib.pyplot as plt# 可复现 # torch.manual_seed(1) # reproducible# Hyper Parameters EPOCH 1 # train the training data n times, to save time, we just train 1 epoch # 批大小 BATCH_SIZE 64 TIME_STEP 28 # rnn time step / image height INPUT_SIZE 28 # rnn input size / image width LR 0.01 # learning rate DOWNLOAD_MNIST True # set to True if havent download the data# Mnist digital dataset train_data dsets.MNIST(root./mnist/,trainTrue, # this is training datatransformtransforms.ToTensor(), # Converts a PIL.Image or numpy.ndarray to# torch.FloatTensor of shape (C x H x W) and normalize in the range [0.0, 1.0]downloadDOWNLOAD_MNIST, # download it if you dont have it )# plot one example print(train_data.train_data.size()) # (60000, 28, 28) print(train_data.train_labels.size()) # (60000) plt.imshow(train_data.train_data[0].numpy(), cmapgray) plt.title(%i % train_data.train_labels[0]) plt.show()# Data Loader for easy mini-batch return in training train_loader torch.utils.data.DataLoader(datasettrain_data, batch_sizeBATCH_SIZE, shuffleTrue)# convert test data into Variable, pick 2000 samples to speed up testing test_data dsets.MNIST(root./mnist/, trainFalse, transformtransforms.ToTensor()) test_x test_data.test_data.type(torch.FloatTensor)[:2000]/255. # shape (2000, 28, 28) value in range(0,1) test_y test_data.test_labels.numpy()[:2000] # covert to numpy arrayclass RNN(nn.Module):def __init__(self):super(RNN, self).__init__()self.rnn nn.LSTM( # if use nn.RNN(), it hardly learnsinput_sizeINPUT_SIZE,hidden_size64, # rnn hidden unitnum_layers1, # number of rnn layerbatch_firstTrue, # input output will has batch size as 1s dimension. e.g. (batch, time_step, input_size))self.out nn.Linear(64, 10)def forward(self, x):# 输入向量的形状# x shape (batch, time_step, input_size)# r_out shape (batch, time_step, output_size)# h_n shape (n_layers, batch, hidden_size)# h_c shape (n_layers, batch, hidden_size)r_out, (h_n, h_c) self.rnn(x, None) # None represents zero initial hidden state# choose r_out at the last time step# 选择输出最后一步的r_outout self.out(r_out[:, -1, :])return outrnn RNN() print(rnn)optimizer torch.optim.Adam(rnn.parameters(), lrLR) # optimize all cnn parameters loss_func nn.CrossEntropyLoss() # the target label is not one-hotted# training and testing for epoch in range(EPOCH):for step, (b_x, b_y) in enumerate(train_loader): # gives batch datab_x b_x.view(-1, 28, 28) # reshape x to (batch, time_step, input_size)output rnn(b_x) # rnn outputloss loss_func(output, b_y) # cross entropy lossoptimizer.zero_grad() # clear gradients for this training steploss.backward() # backpropagation, compute gradientsoptimizer.step() # apply gradients# 每训练50步之后测试一下准确度if step % 50 0:test_output rnn(test_x) # (samples, time_step, input_size)pred_y torch.max(test_output, 1)[1].data.numpy()accuracy float((pred_y test_y).astype(int).sum()) / float(test_y.size)print(Epoch: , epoch, | train loss: %.4f % loss.data.numpy(), | test accuracy: %.2f % accuracy)# print 10 predictions from test data test_output rnn(test_x[:10].view(-1, 28, 28)) pred_y torch.max(test_output, 1)[1].data.numpy() print(pred_y, prediction number) print(test_y[:10], real number) 运行结果
http://www.ho-use.cn/article/10815563.html

相关文章:

  • 线上分销平台wordpress手动数据库优化
  • 县市区科普网站建设wordpress移除快速发布
  • 重庆网站建设 菠拿拿广州模板建站公司
  • php网站开发模板被通知公司网站域名到期
  • 上海普陀门户网站个人开公司需要多少注册资金
  • 广州物流网站开发塑胶包装东莞网站建设
  • 网站制作做站长挣钱商务网站创建
  • 域名和网站名要一样吗藁城网络推广
  • 专业建设网站企业wordpress类似网站模板
  • 卖域名的网站哪个好2个小时学会网站建设
  • 网站地图导出怎么做网站代建设费用吗
  • 长春专用网站建设网站后台都需要什么软件做
  • 建立网站难吗网站维护开发合同
  • 网站设计结果网站策划书内容不包括什么
  • 广州哪家公司做网站好如何给自己网站做外链
  • 检察机关加强网站建设做全屏网站设计时容易犯的错
  • 怀柔区企业网站设计机构提供网站设计板块
  • 金华建设局政务网站中英文网站为什么要分开做
  • 网站建设解密建立网站需要什么条件
  • 微网站模板开发织梦城市门户网站模板
  • 微信h5在哪个网站做广告艺术设计是什么
  • 建设部科技中心网站有趣的网页设计
  • 网站的主要功能模块家装室内设计
  • 房地产市场现状分析2022百度网站优化
  • 建设网站需要学什么jsp环保主题网站代做
  • 时尚风格网站沈阳专业网站建设企业
  • 成都城乡建设局官方网站制作网站公司 可以要求后续修改吗
  • php网站的特点wordpress 怎么去掉index.php
  • 网站界面模板下载如何免费制作企业网站
  • 青海省住房和建设门户网站android诗词app制作教程