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

南联网站建设公司广元网站建设优化

南联网站建设公司,广元网站建设优化,WordPress 网格布局,网络优化师因为我本人主要课题方向是处理图像的#xff0c;RNN是基本的序列处理模型#xff0c;主要应用于自然语言处理#xff0c;故这里就简单的学习一下#xff0c;了解为主 一、问题引入 已知以前的天气数据信息#xff0c;进行预测当天(4-9)是否下雨 日期温度气压是否下雨4-…因为我本人主要课题方向是处理图像的RNN是基本的序列处理模型主要应用于自然语言处理故这里就简单的学习一下了解为主 一、问题引入 已知以前的天气数据信息进行预测当天(4-9)是否下雨 日期温度气压是否下雨4-11020否4-23040是4-34025是4-41030是4-5510否4-61020是4-71260否4-82580是4-92015 这里的数据集都是随别胡乱写的哈就说在阐述一下待解决的问题随别做的数据集 思路可以四天一组每组中有4天的天气信息包括温度、气压、是否下雨 前三天作为输入第四天最为输出 在卷积神经网络中全连接层是权重最多的也是整个网络中计算量最多的地方 卷积中 输入128通道 输出64通道 卷积核5×5 总共的权重参数128×64×5×5 204800 全连接中 一般都不会直接将一个高维通道直接变为1而是多几个中间层进行过度 输入4096 输出1024 权重参数个数4096×1024 4194304 权重参数个数压根都不在一个数量级上所以说正因为卷积的权重共享导致卷积操作所需参数远小于全连接 RNN循环神经网络主要用在具有序列关系的数据中进行处理例如天气的预测因为前后的天气会相互影响并不会断崖式的变化、股市预测等典型的就是自然语言处理 我喜欢beyond乐队这句话的词语之间具有序列关系随便调换顺序产生的结果肯定很难理解 二、RNN循环神经网络 ⅠRNN Cell RNN Cell是RNN中的核心单元 xt序列当中时刻t时的数据这个数据具有一定的维度例如天气数据就是3D向量的即温度、气压、是否下雨 xt通过RNN Cell之后就会得到一个ht这个数据也是具有一定的维度假如是5D向量 从xt这个3D向量数据通过RNN Cell得到一个ht这个5D向量数据很明显这个RNN Cell本质就是一个线性层 区别RNN Cell这个线性层是共享的 RNN Cell基本流程 现学现卖 import torch#根据需求设定参数 batch_size 1 seq_len 3 input_size 4 hidden_size 2yy_cell torch.nn.RNNCell(input_sizeinput_size,hidden_sizehidden_size)dataset torch.randn(seq_len,batch_size,input_size) hidden torch.zeros(batch_size,hidden_size) #h0设置为全0for idx,inputs in enumerate(dataset):print(-----------------)print(Input size:,inputs.shape)hidden yy_cell(inputs,hidden)print(outputs size:,hidden.shape)print(hidden)0 Input size: torch.Size([1, 4]) outputs size: torch.Size([1, 2]) tensor([[ 0.6377, -0.4208]], grad_fnTanhBackward0)1 Input size: torch.Size([1, 4]) outputs size: torch.Size([1, 2]) tensor([[-0.2049, 0.6174]], grad_fnTanhBackward0)2 Input size: torch.Size([1, 4]) outputs size: torch.Size([1, 2]) tensor([[-0.1482, -0.2232]], grad_fnTanhBackward0)ⅡRNN 现学现卖 import torch#根据需求设定参数 batch_size 1 seq_len 3 input_size 4 hidden_size 2 num_layers 2 #两层RNN Cellcell torch.nn.RNN(input_sizeinput_size,hidden_sizehidden_size,num_layersnum_layers)inputs torch.randn(seq_len,batch_size,input_size) hidden torch.zeros(num_layers,batch_size,hidden_size) #h0设置为全0out,hidden cell(inputs,hidden)print(output size:,out.shape) print(output:,out) print(hidden size:,hidden.shape) print(hidden,hidden) output size: torch.Size([3, 1, 2]) output: tensor([[[ 0.8465, -0.1636]],[[ 0.3185, -0.1733]],[[ 0.0269, -0.1330]]], grad_fnStackBackward0) hidden size: torch.Size([2, 1, 2]) hidden tensor([[[ 0.5514, 0.8349]],[[ 0.0269, -0.1330]]], grad_fnStackBackward0)三、RNN实战 需求实现将输入beyond转换为ynbode ①文本转向量one-hot 因为RNN Cell单元输入的数据必须是由单词构成的向量 根据字符来构建一个词典并为其分配索引索引变One-Hot向量词典中有几项最终构建的向量也有几列只能出现一个1其余都为0 characterindexb0d1e2n3o4y5②模型训练 Ⅰ RNN Cell import torchinput_size 6 hidden_size 6 batch_size 1dictionary [b,e,y,o,n,d] #字典 x_data [0,1,2,3,4,5] #beyond y_data [2,4,0,3,5,1] #ynbodeone_hot [[1,0,0,0,0,0],[0,1,0,0,0,0],[0,0,1,0,0,0],[0,0,0,1,0,0],[0,0,0,0,1,0],[0,0,0,0,0,1]]x_one_hot [one_hot[x] for x in x_data] #将x_data的每个元素从one_hot得到相对于的向量形式inputs torch.Tensor(x_one_hot).view(-1,batch_size,input_size) #inputs形式为(seqlen,batch_size,input_size) labels torch.LongTensor(y_data).view(-1,1) #lables形式为(seqlen,1)class y_rnncell_model(torch.nn.Module):def __init__(self,input_size,hidden_size,batch_size):super(y_rnncell_model,self).__init__()self.batch_size batch_sizeself.input_size input_sizeself.hidden_size hidden_sizeself.rnncell torch.nn.RNNCell(input_sizeself.input_size,hidden_sizeself.hidden_size)def forward(self,inputs,labels):hidden self.rnncell(inputs,labels)return hiddendef init_hidden(self): #定义h0初始化return torch.zeros(self.batch_size,self.hidden_size)y_net y_rnncell_model(input_size,hidden_size,batch_size)#定义损失函数和优化器 lossf torch.nn.CrossEntropyLoss() optim torch.optim.Adam(y_net.parameters(),lr0.001)# RNN Cell for epoch in range(800):loss 0optim.zero_grad() #优化器梯度归零hidden y_net.init_hidden() #h0print(Predicted string:,end)for x,y in zip(inputs,labels):hidden y_net(x,hidden)loss lossf(hidden,y) #计算损失之和需要构造计算图_,idx hidden.max(dim1)print(dictionary[idx.item()],end)loss.backward()optim.step()print(,Epoch [%d/20] loss%.4f%(epoch1,loss.item()))Ⅱ RNN #引入torch import torchinput_size 6 #beyond hidden_size 6 # num_layers 1 batch_size 1 seq_len 6idx2char [b,d,e,n,o,y] #字典 x_data [0,2,5,4,3,1] #beyond y_data [5,3,0,4,1,2] #ynbodeone_hot [[1,0,0,0,0,0],[0,1,0,0,0,0],[0,0,1,0,0,0],[0,0,0,1,0,0],[0,0,0,0,1,0],[0,0,0,0,0,1]]x_one_hot [one_hot[x] for x in x_data] #将x_data的每个元素从one_hot得到相对于的向量形式inputs torch.Tensor(x_one_hot).view(seq_len,batch_size,input_size)labels torch.LongTensor(y_data)class y_rnn_model(torch.nn.Module):def __init__(self,input_size,hidden_size,batch_size,num_layers):super(y_rnn_model,self).__init__()self.num_layers num_layersself.batch_size batch_sizeself.input_size input_sizeself.hidden_size hidden_sizeself.rnn torch.nn.RNN(input_sizeself.input_size,hidden_sizeself.hidden_size,num_layersself.num_layers)def forward(self,inputs):hidden torch.zeros(self.num_layers,self.batch_size,self.hidden_size)#构造h0out,_ self.rnn(inputs,hidden) return out.view(-1,self.hidden_size) #seqlen×batchsize,hiddensizenet y_rnn_model(input_size,hidden_size,batch_size,num_layers)lessf torch.nn.CrossEntropyLoss() optimizer torch.optim.Adam(net.parameters(),lr0.05)for epoch in range(30):optimizer.zero_grad()outputs net(inputs)loss lessf(outputs,labels) loss.backward()optimizer.step()_, idx outputs.max(dim1)idx idx.data.numpy()print(Predicted:,.join([idx2char[x] for x in idx]),end)print(,Epoch[%d/15] loss%.3f % (epoch1,loss.item()))③one-hot的不足 1维度过高一个单词得占用一个维度 2one-hot向量过于稀疏就一个1其余全是0 3硬编码一对一 解决方法EMBEDDING 思路:将高维的向量映射到一个稠密的低维的向量空间里面 即数据的降维 优化RNN 官网torch.nn.Embedding函数详细参数解释 参数含义num_embeddingsone-hot的维度embedding_dimembedding的维度Input: (*)(∗), IntTensor or LongTensor of arbitrary shape containing the indices to extract输入需要是一个整型或者长整型IntTensor or LongTensorOutput: (*, H), where * is the input shape and Hembedding_dim(input shape,embedding_dim ) 网络架构
http://www.hkea.cn/news/14433942/

相关文章:

  • 网站建设 项目背景网站维护要求
  • asp网站表格代码做网站行业的动态
  • 网站建立健全举报工作机制网页制作免费模板
  • 广州做礼物的网站西安广告公司排名top10
  • 雄安专业网站建设哪家好网络推广方案案例
  • wordpress文章关键词插件淄博网站优化资讯
  • 网站收录需要多久html代码高亮
  • 网站小程序app开发wordpress 粉丝
  • wordpress分享视频网站网站建设海淀
  • 企业网站建设专业的公司wordpress首页如何调用最新文章评论标签云文章分类等代码
  • 河北网站建设价格大全商机网创业好项目
  • 响应式布局网站实例西安 网站建设 培训班
  • 网站营销的重要价值网站排名优化提升快速
  • 扬中网站优化seo推广计划
  • 成都市建设领域网站咨询电话东莞网站优化软件
  • 公司做彩票网站违法吗吉利汽车新能源品牌
  • 佛山网站建站h5可以发在哪些平台上
  • 网站开发7个基本流程图哪个装修公司比较好
  • 美食电子商务网站建设规划书成都网站建设哪家专业而且比较便宜
  • 开发一个网站的步骤流程大型网站怎么做优化
  • 无锡网络公司可以制作网站WordPress用quic
  • 成都专业网站建设价格店面设计师岗位职责
  • 网站建设工作量评估渭南建设工程招标投标网站
  • 网站建设后台有哪些项目怎么区分营销型和展示型的网站
  • 上海企业建站提供商学校网站怎么下载不了
  • 网站建设的基础内容公司网站开发主要技术
  • 网站被同行链接代替自媒体十大平台
  • 北京网站优化解决方案北京专门做网站的公司
  • 车公庙网站建设免费网站在哪里申请
  • 山东省建设教育集团网站首页汕头快速建站模板