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

哪个网站有png素材成都隆昌网站建设

哪个网站有png素材,成都隆昌网站建设,苏州惊天网站制作网,网站建设课程小结文章目录 1 前言1.1 项目介绍 2 情感分类介绍3 数据集4 实现4.1 数据预处理4.2 构建网络4.3 训练模型4.4 模型评估4.5 模型预测 5 最后 1 前言 #x1f525; 优质竞赛项目系列#xff0c;今天要分享的是 基于GRU的 电影评论情感分析 该项目较为新颖#xff0c;适合作为竞… 文章目录 1 前言1.1 项目介绍 2 情感分类介绍3 数据集4 实现4.1 数据预处理4.2 构建网络4.3 训练模型4.4 模型评估4.5 模型预测 5 最后 1 前言 优质竞赛项目系列今天要分享的是 基于GRU的 电影评论情感分析 该项目较为新颖适合作为竞赛课题方向学长非常推荐 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate 1.1 项目介绍 其实很明显这个项目和微博谣言检测是一样的也是个二分类的问题因此我们可以用到学长之前提到的各种方法即 朴素贝叶斯或者逻辑回归以及支持向量机都可以解决这个问题。 另外在深度学习中我们可以用CNN-Text或者RNN以及LSTM等模型最好。 当然在构建网络中也相对简单相对而言LSTM就比较复杂了为了让不同层次的同学们可以接受学长就用了相对简单的GRU模型。 如果大家想了解LSTM。以后学长会给大家详细介绍。 2 情感分类介绍 其实情感分析在自然语言处理中情感分析一般指判断一段文本所表达的情绪状态属于文本分类问题。一般而言情绪类别正面/负面。当然这就是为什么本人在前面提到情感分析实际上也是二分类问题的原因。 3 数据集 学长本次使用的是非常典型的IMDB数据集。 该数据集包含来自互联网的50000条严重两极分化的评论该数据被分为用于训练的25000条评论和用于测试的25000条评论训练集和测试集都包含50%的正面评价和50%的负面评价。该数据集已经经过预处理评论单词序列已经被转换为整数序列其中每个整数代表字典中的某个单词。 查看其数据集的文件夹这是train和test文件夹。 接下来就是以train文件夹介绍里面的内容 然后就是以neg文件夹介绍里面的内容里面会有若干的text文件 4 实现 4.1 数据预处理 ​ #导入必要的包import zipfileimport osimport ioimport randomimport jsonimport matplotlib.pyplot as pltimport numpy as npimport paddleimport paddle.fluid as fluidfrom paddle.fluid.dygraph.nn import Conv2D, Pool2D, Linear, Embeddingfrom paddle.fluid.dygraph.base import to_variablefrom paddle.fluid.dygraph import GRUUnitimport paddle.dataset.imdb as imdb#加载字典def load_vocab():vocab imdb.word_dict()return vocab#定义数据生成器class SentaProcessor(object):def __init__(self):self.vocab load_vocab()def data_generator(self, batch_size, phasetrain):if phase train:return paddle.batch(paddle.reader.shuffle(imdb.train(self.vocab),25000), batch_size, drop_lastTrue)elif phase eval:return paddle.batch(imdb.test(self.vocab), batch_size,drop_lastTrue)else:raise ValueError(Unknown phase, which should be in [train, eval]) 步骤 首先导入必要的第三方库 接下来就是数据预处理需要注意的是数据是以数据标签的方式表示一个句子因此每个句子都是以一串整数来表示的每个数字都是对应一个单词。当然数据集就会有一个数据集字典这个字典是训练数据中出现单词对应的数字标签。 4.2 构建网络 这次的GRU模型分为以下的几个步骤 定义网络定义损失函数定义优化算法 具体实现如下 ​ #定义动态GRU class DynamicGRU(fluid.dygraph.Layer): def init(self, size, param_attrNone, bias_attrNone, is_reverseFalse, gate_activation‘sigmoid’, candidate_activation‘relu’, h_0None, origin_modeFalse, ): super(DynamicGRU, self).init() self.gru_unit GRUUnit( size * 3, param_attrparam_attr, bias_attrbias_attr, activationcandidate_activation, gate_activationgate_activation, origin_modeorigin_mode) self.size size self.h_0 h_0 self.is_reverse is_reverse def forward(self, inputs): hidden self.h_0 res [] for i in range(inputs.shape[1]): if self.is_reverse: i inputs.shape[1] - 1 - i input_ inputs[ :, i:i1, :] input_ fluid.layers.reshape(input_, [-1, input_.shape[2]], inplaceFalse) hidden, reset, gate self.gru_unit(input_, hidden) hidden_ fluid.layers.reshape(hidden, [-1, 1, hidden.shape[1]], inplaceFalse) res.append(hidden_) if self.is_reverse: res res[::-1] res fluid.layers.concat(res, axis1) return res class GRU(fluid.dygraph.Layer):def __init__(self):super(GRU, self).__init__()self.dict_dim train_parameters[vocab_size]self.emb_dim 128self.hid_dim 128self.fc_hid_dim 96self.class_dim 2self.batch_size train_parameters[batch_size]self.seq_len train_parameters[padding_size]self.embedding Embedding(size[self.dict_dim 1, self.emb_dim],dtypefloat32,param_attrfluid.ParamAttr(learning_rate30),is_sparseFalse)h_0 np.zeros((self.batch_size, self.hid_dim), dtypefloat32)h_0 to_variable(h_0)self._fc1 Linear(input_dimself.hid_dim, output_dimself.hid_dim*3)self._fc2 Linear(input_dimself.hid_dim, output_dimself.fc_hid_dim, actrelu)self._fc_prediction Linear(input_dimself.fc_hid_dim,output_dimself.class_dim,actsoftmax)self._gru DynamicGRU(sizeself.hid_dim, h_0h_0)def forward(self, inputs, labelNone):emb self.embedding(inputs)o_np_mask to_variable(inputs.numpy().reshape(-1,1) ! self.dict_dim).astype(float32)mask_emb fluid.layers.expand(to_variable(o_np_mask), [1, self.hid_dim])emb emb * mask_embemb fluid.layers.reshape(emb, shape[self.batch_size, -1, self.hid_dim])fc_1 self._fc1(emb)gru_hidden self._gru(fc_1)gru_hidden fluid.layers.reduce_max(gru_hidden, dim1)tanh_1 fluid.layers.tanh(gru_hidden)fc_2 self._fc2(tanh_1)prediction self._fc_prediction(fc_2)if label is not None:acc fluid.layers.accuracy(prediction, labellabel)return prediction, accelse:return prediction4.3 训练模型 ​ def train(): with fluid.dygraph.guard(place fluid.CUDAPlace(0)): # # 因为要进行很大规模的训练因此我们用的是GPU如果没有安装GPU的可以使用下面一句把这句代码注释掉即可 # with fluid.dygraph.guard(place fluid.CPUPlace()): processor SentaProcessor()train_data_generator processor.data_generator(batch_sizetrain_parameters[batch_size], phasetrain)model GRU()sgd_optimizer fluid.optimizer.Adagrad(learning_ratetrain_parameters[lr],parameter_listmodel.parameters())steps 0Iters, total_loss, total_acc [], [], []for eop in range(train_parameters[epoch]):for batch_id, data in enumerate(train_data_generator()):steps 1doc to_variable(np.array([np.pad(x[0][0:train_parameters[padding_size]], (0, train_parameters[padding_size] - len(x[0][0:train_parameters[padding_size]])),constant,constant_values(train_parameters[vocab_size]))for x in data]).astype(int64).reshape(-1))label to_variable(np.array([x[1] for x in data]).astype(int64).reshape(train_parameters[batch_size], 1))model.train()prediction, acc model(doc, label)loss fluid.layers.cross_entropy(prediction, label)avg_loss fluid.layers.mean(loss)avg_loss.backward()sgd_optimizer.minimize(avg_loss)model.clear_gradients()if steps % train_parameters[skip_steps] 0:Iters.append(steps)total_loss.append(avg_loss.numpy()[0])total_acc.append(acc.numpy()[0])print(step: %d, ave loss: %f, ave acc: %f %(steps,avg_loss.numpy(),acc.numpy()))if steps % train_parameters[save_steps] 0:save_path train_parameters[checkpoints]/save_dir_ str(steps)print(save model to: save_path)fluid.dygraph.save_dygraph(model.state_dict(),save_path)draw_train_process(Iters, total_loss, total_acc)4.4 模型评估 结果还可以这里说明的是刚开始的模型训练评估不可能这么好很明显是过拟合的问题这就需要我们调整我们的epoch、batchsize、激活函数的选择以及优化器、学习率等各种参数通过不断的调试、训练最好可以得到不错的结果但是如果还要更好的模型效果其实可以将GRU模型换为更为合适的RNN中的LSTM以及bi- LSTM模型会好很多。 4.5 模型预测 ​ train_parameters[“batch_size”] 1 with fluid.dygraph.guard(place fluid.CUDAPlace(0)):sentences this is a great moviedata load_data(sentences)print(sentences)print(data)data_np np.array(data)data_np np.array(np.pad(data_np,(0,150-len(data_np)),constant,constant_values train_parameters[vocab_size])).astype(int64).reshape(-1)infer_np_doc to_variable(data_np)model_infer GRU()model, _ fluid.load_dygraph(data/save_dir_750.pdparams)model_infer.load_dict(model)model_infer.eval()result model_infer(infer_np_doc)print(预测结果为正面概率为%0.5f负面概率为%0.5f % (result.numpy()[0][0],result.numpy()[0][1]))训练的结果还是挺满意的到此为止我们的本次项目实验到此结束。 5 最后 更多资料, 项目分享 https://gitee.com/dancheng-senior/postgraduate
http://www.pierceye.com/news/92833/

相关文章:

  • 网站开发的验收标准给几个网址谢谢
  • 手表网站大全网络推广竞价
  • 中创高科官方网站wordpress 页面添加js
  • 平台网站怎么做专业网站设计公司排名
  • 网站开发公司 重庆百度seo标题优化软件
  • wordpress 导入主题网站建设优化广告流量
  • 网店装修网站房屋装修设计费一般多少
  • 微信公众平台制作网站设计网站页面要怎么切图
  • 个人网站 备案 类型小红书笔记推广
  • 门户网站怎么创建网页制作步骤php
  • 六师五家渠市建设局网站wordpress 定时发布插件
  • 深圳外贸网站外贸网站建设安阳网站建设服务
  • wdcp 网站建设做民宿推广都有哪些网站
  • 常见的网站开发环境网站建设的结构
  • 贵阳网站推广优化公司做网站的公司搞什么活动
  • 安徽平台网站建设制作坪山网站设计的公司
  • 如何做挂qq的网站2017网站建设
  • wordpress语言切换网站保定广告设计公司
  • 做网站需要走公司吗运行一个网站要多少钱
  • 怎样可以免费做网站wap网站软件
  • 织梦手机网站免费模板漳州城乡建设局网站
  • 厦门建设网站的公司php除了写网站吗
  • 如何做全网影视网站居然之家装修公司怎么样
  • 佛山网站建设公司哪家最好万能软文范例800字
  • 网站排名优化如何做wordpress 免费版广告
  • 拓客网站建设建易网官网
  • 网站目录链接怎么做的建网站pc版 (报价)
  • 北京网站制作业务如何开展做网站海报
  • 网站的设计方法有哪些互动网络游戏公司网站建设
  • 公司网站开发制作公司国内重大新闻2022