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

常德网站制作建设毕设电商网站设计

常德网站制作建设,毕设电商网站设计,建网站公司锦程,可以做网站的编程有什么软件一、概念 门控循环单元#xff08;Gated Recurrent Unit#xff0c;GRU#xff09;是一种改进的循环神经网络#xff08;RNN#xff09;#xff0c;由Cho等人在2014年提出。GRU是LSTM的简化版本#xff0c;通过减少门的数量和简化结构#xff0c;保留了LSTM的长时间依赖…一、概念 门控循环单元Gated Recurrent UnitGRU是一种改进的循环神经网络RNN由Cho等人在2014年提出。GRU是LSTM的简化版本通过减少门的数量和简化结构保留了LSTM的长时间依赖捕捉能力同时提高了计算效率。GRU通过引入两个门重置门和更新门来控制信息的流动。与LSTM不同GRU没有单独的细胞状态而是将隐藏状态直接作为信息传递的载体因此结构更简单计算效率更高。 二、核心算法 令为时间步 t 的输入向量为前一个时间步的隐藏状态向量为当前时间步的隐藏状态向量为当前时间步的重置门向量为当前时间步的更新门向量为当前时间步的候选隐藏状态向量分别为各门的权重矩阵为偏置向量为sigmoid激活函数tanh为tanh激活函数*为元素级乘法。 1、重置门 重置门控制前一个时间步的隐藏状态对当前时间步的影响。通过sigmoid激活函数重置门的输出在0到1之间表示前一个隐藏状态元素被保留的比例。 2、更新门 更新门控制前一个时间步的隐藏状态和当前时间步的候选隐藏状态的混合比例。通过sigmoid激活函数更新门的输出在0到1之间表示前一个隐藏状态元素被保留的比例。 3、候选隐藏状态 候选隐藏状态结合当前输入和前一个时间步的隐藏状态生成。重置门的输出与前一个隐藏状态相乘表示保留的旧信息。然后与当前输入一起通过tanh激活函数生成候选隐藏状态。 4、隐藏状态更新 隐藏状态结合更新门的结果进行更新。更新门的输出与前一个隐藏状态相乘表示保留的旧信息。更新门的补数与候选隐藏状态相乘表示写入的新信息。两者相加得到当前时间步的隐藏状态。 三、python实现 import torch import torch.nn as nn import numpy as np import matplotlib.pyplot as plt# 设置随机种子 torch.manual_seed(0) np.random.seed(0)# 生成正弦波数据 timesteps 1000 sin_wave np.array([np.sin(2 * np.pi * i / timesteps) for i in range(timesteps)])# 创建数据集 def create_dataset(data, time_step1):dataX, dataY [], []for i in range(len(data) - time_step - 1):a data[i:(i time_step)]dataX.append(a)dataY.append(data[i time_step])return np.array(dataX), np.array(dataY)time_step 10 X, y create_dataset(sin_wave, time_step)# 数据预处理 X X.reshape(X.shape[0], time_step, 1) y y.reshape(-1, 1)# 转换为Tensor X torch.tensor(X, dtypetorch.float32) y torch.tensor(y, dtypetorch.float32)# 划分训练集和测试集 train_size int(len(X) * 0.7) test_size len(X) - train_size trainX, testX X[:train_size], X[train_size:] trainY, testY y[:train_size], y[train_size:]# 定义RNN模型 class GRUModel(nn.Module):def __init__(self, input_size, hidden_size, output_size):super(GRUModel, self).__init__()self.hidden_size hidden_sizeself.gru nn.GRU(input_size, hidden_size, batch_firstTrue)self.fc nn.Linear(hidden_size, output_size)def forward(self, x):h0 torch.zeros(1, x.size(0), self.hidden_size)out, _ self.gru(x, h0)out self.fc(out[:, -1, :])return outinput_size 1 hidden_size 50 output_size 1 model GRUModel(input_size, hidden_size, output_size)# 定义损失函数和优化器 criterion nn.MSELoss() optimizer torch.optim.Adam(model.parameters(), lr0.01)# 训练模型 num_epochs 50 for epoch in range(num_epochs):model.train()optimizer.zero_grad()outputs model(trainX)loss criterion(outputs, trainY)loss.backward()optimizer.step()if (epoch 1) % 10 0:print(fEpoch [{epoch 1}/{num_epochs}], Loss: {loss.item():.4f})# 预测 model.eval() train_predict model(trainX) test_predict model(testX) train_predict train_predict.detach().numpy() test_predict test_predict.detach().numpy()# 绘制结果 plt.figure(figsize(10, 6)) plt.plot(sin_wave, labelOriginal Data) plt.plot(np.arange(time_step, time_step len(train_predict)), train_predict, labelTraining Predict) plt.plot(np.arange(time_step len(train_predict), time_step len(train_predict) len(test_predict)), test_predict, labelTest Predict) plt.legend() plt.show() 四、总结 GRU的结构比LSTM更简单只有两个门重置门和更新门没有单独的细胞状态。这使得GRU的计算复杂度较低训练和推理速度更快。通过引入重置门和更新门GRU也有效地解决了标准RNN在处理长序列时的梯度消失和梯度爆炸问题。然而在需要更精细的门控制和信息流动的任务中LSTM的性能可能优于GRU。因此在我们实际的建模过程中可以根据数据特点选择合适的RNN系列模型并没有哪个模型能在所有任务中都具有优势。
http://www.w-s-a.com/news/633899/

相关文章:

  • 西安企业模板建站福州+网站建设+医疗
  • 邹城市住房和建设局网站仙居网站建设贴吧
  • 为什么要用CGI做网站网站手机优化显示
  • 做袜子娃娃的网站做网站要学的东西
  • 类qq留言网站建设企业做网站公司
  • 如何查到网站建设三足鼎立小程序开发公司
  • 交互网站怎么做的wordpress ssl 错位
  • 公司宣传 如何做公司网站郑州做网站那
  • 衡阳市城乡建设协会官方网站免费游戏网站模板
  • 小程序怎么做优惠券网站合肥建站网站平台
  • 民制作网站价格株洲企业seo优化
  • 网站建设 岗位职责网站建设百度索引
  • 网站建设的内容下拉网站导航用ps怎么做
  • 怎样做p2p网站海口免费自助建站模板
  • 给企业建设网站的流程图wordpress 添加子菜单
  • 企业网站带新闻发布功能的建站皋兰县建设局网站
  • 国内外做gif的网站wordpress数据库教程
  • 成都建站平台自己做一个网站需要多少钱
  • 景区旅游网站平台建设公司企业网站源码
  • 免费高清网站推荐喂来苏州网络科技有限公司
  • php做的大型网站有哪些备案博客域名做视频网站会怎么样
  • 去哪网站备案吗昭通网站建设
  • flash企业网站源码建筑材料采购网站
  • 网站可以换虚拟主机吗部门做网站优点
  • 如何做分类网站信息营销莱芜网页定制
  • 班级网站建设感想中国做视频网站有哪些
  • 做刷票的网站wordpress图片链接插件
  • 给客户做网站图片侵权沈阳做网站的地方
  • 网站开发步骤规划蓝天云免费空间主机
  • 网站字体规范wordpress找不到页面内容编辑