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

网站title商城网站建设要求

网站title,商城网站建设要求,网站建设介绍书,wordpress框架视频#x1f468;‍#x1f393;作者简介#xff1a;一位即将上大四#xff0c;正专攻机器学习的保研er #x1f30c;上期文章#xff1a;机器学习深度学习——NLP实战#xff08;情感分析模型——数据集#xff09; #x1f4da;订阅专栏#xff1a;机器学习‍作者简介一位即将上大四正专攻机器学习的保研er 上期文章机器学习深度学习——NLP实战情感分析模型——数据集 订阅专栏机器学习深度学习 希望文章对你们有所帮助 NLP实战情感分析模型——RNN实现 引入使用循环神经网络表示单个文本加载预训练的词向量训练和评估模型小结 引入 与词相似度和类比任务一样我们也可以将预先训练的词向量应用于情感分析。上节已经下载过了IMDb评论数据集了这个数据集也不算很大虽然下载了很久。。。使用在大规模语料库上预训练的文本表示可以减少模型的过拟合。我们将使用GloVe模型来表示每个词元并将这些词元表示送入多层双向循环神经网络以获得文本序列表示该文本序列表示将被转换为情感分析输出。对于相同的下游应用之后再讲不同的架构选择。 如上图所示将GloVe送入基于循环神经网络的架构用于情感分析。 import torch from torch import nn from d2l import torch as d2lbatch_size 64 train_iter, test_iter, vocab d2l.load_data_imdb(batch_size)使用循环神经网络表示单个文本 在文本分类任务中可变长度的文本序列将被转换为固定长度的类别。在下面的BiRNN类中虽然文本序列的每个词元经过嵌入层self.embedding获得其单独的预训练GloVe表示但是整个序列由双向循环神经网络self.encoder编码。更具体的说双向长短期记忆网络在初始和最终时间步的隐状态在最后一层被连结起来作为文本序列的表示。然后通过一个具有两个输出“积极”和“消极”的全连接层self.decoder将此单一文本表示转换为输出类别。 class BiRNN(nn.Module):def __init__(self, vocab_size, embed_size, num_hiddens,num_layers, **kwargs):super(BiRNN, self).__init__(**kwargs)self.embedding nn.Embedding(vocab_size, embed_size)# 将bidirectional设置为True以获取双向循环神经网络self.encoder nn.LSTM(embed_size, num_hiddens, num_layersnum_layers,bidirectionalTrue)self.decoder nn.Linear(4 * num_hiddens, 2)def forward(self, inputs):# inputs的形状是批量大小时间步数# 因为长短期记忆网络要求其输入的第一个维度是时间维# 所以在获得词元表示之前输入会被转置。# 输出形状为时间步数批量大小词向量维度embeddings self.embedding(inputs.T)self.encoder.flatten_parameters()# 返回上一个隐藏层在不同时间步的隐状态# outputs的形状是时间步数批量大小2*隐藏单元数outputs, _ self.encoder(embeddings)# 连结初始和最终时间步的隐状态作为全连接层的输入# 其形状为批量大小4*隐藏单元数encoding torch.cat((outputs[0], outputs[-1]), dim1)outs self.decoder(encoding)return outs让我们构造一个具有两个隐藏层的双向循环神经网络来表示单个文本以进行情感分析。 embed_size, num_hiddens, num_layers 100, 100, 2 devices d2l.try_all_gpus() net BiRNN(len(vocab), embed_size, num_hiddens, num_layers)def init_weights(m):if type(m) nn.Linear:nn.init.xavier_uniform_(m.weight)if type(m) nn.LSTM:for param in m._flat_weights_names:if weight in param:nn.init.xavier_uniform_(m._parameters[param]) net.apply(init_weights)加载预训练的词向量 下面我们为词表中的单词加载预训练的100维要与embed_size一致的GloVe嵌入。我们使用这些预训练的词向量来表示评论中的词元并且在训练期间不要更新这些向量。 glove_embedding d2l.TokenEmbedding(glove.6b.100d) embeds glove_embedding[vocab.idx_to_token] net.embedding.weight.data.copy_(embeds) net.embedding.weight.requires_grad False训练和评估模型 现在我们可以训练双向循环神经网络进行情感分析。使用Adam优化算法。 lr, num_epochs 0.01, 5 trainer torch.optim.Adam(net.parameters(), lrlr) loss nn.CrossEntropyLoss(reductionnone) d2l.train_ch13(net, train_iter, test_iter, loss, trainer, num_epochs,devices) d2l.plt.show()运行结果 loss 0.300, train acc 0.875, test acc 0.818 79.4 examples/sec on [device(type‘cpu’)] 运行图片 接着我们定义一下函数来使用训练好的模型net预测文本序列的情感。 #save def predict_sentiment(net, vocab, sequence):预测文本序列的情感sequence torch.tensor(vocab[sequence.split()], deviced2l.try_gpu())label torch.argmax(net(sequence.reshape(1, -1)), dim1)return positive if label 1 else negative最后让我们使用训练好的模型对两个简单的句子进行情感预测。 predict_sentiment(net, vocab, this movie is so great)运行结果 ‘positive’ predict_sentiment(net, vocab, this movie is so bad)运行结果 ‘negative’ 小结 1、预训练的词向量可以表示文本序列中的各个词元。 2、双向循环神经网络可以表示文本序列。例如通过连结初始和最终时间步的隐状态可以使用全连接的层将该单个文本表示转换为类别。
http://www.sadfv.cn/news/345819/

相关文章:

  • 重庆网站备案多久怎样做网站软件
  • 网站建设公司首页最近新闻热点国家大事
  • 什么做的网站吗百度网站推广费用多少
  • 福州闽侯网站建设苏州园区一站式服务中心
  • 怎么获取网站ftp地址北京企业官网网站建设
  • 网站制作多少钱一年wordpress 404更改
  • 专业建站教程网络公司网站设计维护合同
  • 关键词网站排名查询太原关键词排名优化
  • 网站建设后期维护小魔仙网站置顶jq
  • php做网站速成旅游网站建设与网页设计意义
  • 企业网站建设流程介绍做教育网站
  • 禅城网站建设代理专业网页设计模板
  • 设计素材网站排行榜建筑工程公司名字起名大全
  • app开发和网站开发一样么做go kegg的在线网站
  • 叶涛网站推广优化火狐 wordpress
  • 个人网站整站下载wordpress 打开满
  • 做知识内容的网站与app广州软件定制公司
  • 网上申请入团网站安全员证书查询网入口
  • 贵阳微网站建设南昌市建设局官方网站
  • 自助网站系统四川成都最新消息
  • 专门做团购的网站有哪些logo生成器免费版
  • 旅游网站策划书范文自己注册公司
  • 做网站都需要买什么网上开店铺需要什么流程
  • 石景山网站建设服务大学物流仓储作业代做网站
  • 网页设计与网站建设完全实用手册高端快速建站
  • 大连金广建设集团网站泉州网络公司都
  • 安全网站建设公司网站搭建方案
  • 域名网站建设方案书wordpress 单一商品主题
  • 做企业网站合同网站购物车功能
  • 会计做帐模板网站成都广告公司地址