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

网站广告是文化事业建设费做镜像网站违法

网站广告是文化事业建设费,做镜像网站违法,肯德基网站开发,昆明网站开发公司电话LSTM 前言网络架构总线遗忘门记忆门记忆细胞输出门 模型定义单个LSTM神经元的定义LSTM层内结构的定义 模型训练模型评估代码细节LSTM层单元的首尾的处理配置Tensorflow的GPU版本 前言 LSTM作为经典模型#xff0c;可以用来做语言模型#xff0c;实现类似于语言模型的功能可以用来做语言模型实现类似于语言模型的功能同时还经常用于做时间序列。由于LSTM的原版论文相关版权问题这里以colah大佬的博客为基础进行讲解。之前写过一篇Tensorflow中的LSTM详解但是原理部分跟代码部分的联系并不紧密实践性较强但是如果想要进行更加深入的调试就会出现原理性上面的问题因此特此作文解决这个问题想要用LSTM这个有趣的模型做出更加好的机器学习效果。 网络架构 这张图展示了LSTM在整体结构下面就开始分部分介绍中间这个东东。 总线 这条是总线可以实现神经元结构的保存或者更改如果就是像上图一样一条总线贯穿不做任何改变那么就是不改变细胞状态。那么如果想要改变细胞状态怎么办可以通过门来实现这里的门跟高中生物中学的神经兴奋阈值比较像用数学来表示就是sigmoid函数或者其他的激活函数当门的输入达到要求门就会打开允许当前门后面的信息“穿过”门改变主线上面传递的信息如果把每一个神经元看成一个时间节点那么从上一个时间节点传到下一个时间节点过程中的门的开启与关闭就实现了时间序列数据的信息传递。 遗忘门 首先是遗忘门这个门的作用是决定从上一个神经元传输到当前神经元的数据丢弃的程度如果经过sigmoid函数以后输出0表示全部丢弃输出1表示全部保留这个层的输入是旧的信息和当前的新信息。 σ \sigma σsigmoid函数 W f W_f Wf​权重向量 b f b_f bf​偏置项决定丢弃上一个时间节点的程度如果是正数表示更容易遗忘如果是负数表示比较容易记忆 h t − 1 h_{t-1} ht−1​上一个时刻的输入 x t x_t xt​当前层的输入 记忆门 接下来是记忆门这个门决定要记住什么信息同时决定按照什么程度记住上一个状态的信息。 i t i_t it​在时间步t时刻的输入门激活值计算方法跟上面的遗忘门是一样的只是目的不一样这里是记忆 C ~ t \tilde{C}_{t} C~t​表示上一个时刻的信息和当前时刻的信息的集合但是是规则化到[-11]这个范围内了的 记忆细胞 有了上面的要记忆的信息和要丢弃的信息记忆细胞的功能就可以得到实现用 f t f_t ft​这个标量决定上一个状态要遗忘什么用 i t i_t it​这个标量决定上一个状态要记住什么以及当前状态的信息要记住什么。这样就形成了一个记忆闭环了。 输出门 最后在有了记忆细胞以后不仅仅不要将当前细胞状态记住还要将当前的信息向下一层继续传输实现公式中的状态转移。 o t o_t ot​跟前面的门公式都一样但是功能是决定输出的程度 h t h_t ht​将输出规范到[-11]的区间这里有两个输出的原因是在构建LSTM网络的时候需要有纵向向上的那个 h t h_t ht​然而在当前层的LSTM的神经元之间还是首尾相接的。 模型定义 单个LSTM神经元的定义 # 定义单个LSTM单元 # 定义单个LSTM单元 class My_LSTM(nn.Module):def __init__(self, input_size, hidden_size, output_size):super(My_LSTM, self).__init__()self.input_size input_sizeself.hidden_size hidden_sizeself.output_size output_size# 初始化门的权重和偏置,由于每一个神经元都有自己的偏置所以在定义单元内部定义self.Wf nn.Parameter(torch.Tensor(input_size hidden_size, hidden_size))self.bf nn.Parameter(torch.Tensor(hidden_size))self.Wi nn.Parameter(torch.Tensor(input_size hidden_size, hidden_size))self.bi nn.Parameter(torch.Tensor(hidden_size))self.Wo nn.Parameter(torch.Tensor(input_size hidden_size, hidden_size))self.bo nn.Parameter(torch.Tensor(hidden_size))self.Wg nn.Parameter(torch.Tensor(input_size hidden_size, hidden_size))self.bg nn.Parameter(torch.Tensor(hidden_size))# 初始化输出层的权重和偏置self.W nn.Parameter(torch.Tensor(hidden_size, output_size))self.b nn.Parameter(torch.Tensor(output_size))# 用于计算每一种权重的函数def cal_weight(self, input, weight, bias):return F.linear(input, weight, bias)# x是输入的数据,数据的格式是(batch, seq_len, input_size)包含的是batch个序列每个序列有seq_len个时间步每个时间步有input_size个特征def forward(self, x):# 初始化隐藏层和细胞状态h torch.zeros(1, 1, self.hidden_size).to(x.device)c torch.zeros(1, 1, self.hidden_size).to(x.device)# 遍历每一个时间步for i in range(x.size(1)):input x[:, i, :].view(1, 1, -1) # 取出每一个时间步的数据# 计算每一个门的权重f torch.sigmoid(self.cal_weight(input, self.Wf, self.bf)) # 遗忘门i torch.sigmoid(self.cal_weight(input, self.Wi, self.bi)) # 输入门o torch.sigmoid(self.cal_weight(input, self.Wo, self.bo)) # 输出门C_ torch.tanh(self.cal_weight(input, self.Wg, self.bg)) # 候选值# 更新细胞状态c f * c i * C_# 更新隐藏层h o * torch.tanh(c) # 将输出标准化到-1到1之间output self.cal_weight(h, self.W, self.b) # 计算输出return output LSTM层内结构的定义 class My_LSTMNetwork(nn.Module):def __init__(self, input_size, hidden_size, output_size):super(My_LSTMNetwork, self).__init__()self.hidden_size hidden_sizeself.lstm My_LSTM(input_size, hidden_size) # 使用自定义的LSTM单元self.fc nn.Linear(hidden_size, output_size) # 定义全连接层def forward(self, x):h0 torch.zeros(1, x.size(0), self.hidden_size).to(x.device)c0 torch.zeros(1, x.size(0), self.hidden_size).to(x.device)out, _ self.lstm(x, (h0, c0)) # LSTM层的前向传播out self.fc(out[:, -1, :]) # 全连接层的前向传播return out 模型训练 history model.fit(trainX, trainY, batch_size64, epochs50, validation_split0.1, verbose2) print(compilation time:, time.time()-start)模型评估 为了更加直观展示这里用画图的方法进行结果展示。 fig3 plt.figure(figsize(20, 15)) plt.plot(np.arange(train_size1, len(dataset)1, 1), scaler.inverse_transform(dataset)[train_size:], labeldataset) plt.plot(testPredictPlot, g, labeltest) plt.ylabel(price) plt.xlabel(date) plt.legend() plt.show()代码细节 LSTM层单元的首尾的处理 首部由于第一个节点不用接受来自上一个节点的输入不需要有输入当然也有一些是添加标识。 尾部由于已经进行到当前层的最后一个节点因此输出只需要向下一层进行传递而不用向下一个节点传递添加标识也是可以的。 配置Tensorflow的GPU版本 这一篇写的比较好,我自己的硬件环境如下图所示需要的可以借鉴一下当然也可以在我提供的代码链接直接用我给的environment.yml一键构建环境。
http://www.hkea.cn/news/14498437/

相关文章:

  • 网站怎么做动效发布一个app要多少钱
  • 常州门户网站建设什么网站做问卷好
  • 贵阳建站安徽建设通网站
  • 北大荒建设集团有限公司网站陕西科技网站建设
  • 营销网站建设情况调查问卷大丰做网站哪家最好
  • 如何做网站搭建全国公共资源交易中心
  • 《php网站开发实例教程》互联网备案查询系统
  • 龙岗网站建设价格lol英雄介绍网站模板
  • 如何购买网站服务器可以直接进入网站的正能量
  • 网站建设中网站需求分析的理解上海网络推广部
  • 做京东网站采购的工作内容哪有专做飞织鞋面的网站
  • 提供网站建设报开普网站建设公司
  • 东莞网网站公司简介吉林做网站找谁
  • 网站源代码怎么生成网页东莞网站建设制作价格
  • 万网如何建设网站英文网站字体大小
  • 代做作业网站内蒙做网站
  • 建一个公司网站需要几天网站代码如何做优化
  • 免费自助网站建站学生简单网站制作教程
  • 在对方网站做友情链接上海建筑建材业地址
  • 网站建设推广 公司网站运营建设方案
  • 做网站组织架构在线设计平台软件
  • 做网站用新域名还是老域名机票网站开发知乎
  • 化工建设网站湘潭网站建设 要选磐石网络
  • 单位网站建设要多少钱国外网站做调查
  • 怎么做兼职网站帮网站网站做推广被抓会判刑吗
  • 简单的网站建设模板个人网站建设需要多少钱
  • 网站维护外包合同网站在建设中页面
  • 选择网站设计公司佛山青岛seo代理计费
  • 怎么做网站的登录界面怎么做舞曲网站
  • 网站建设的互动性电影网页设计教程