欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 八卦 > 循环神经网络rnn

循环神经网络rnn

2025/2/26 18:12:07 来源:https://blog.csdn.net/m0_68837470/article/details/145801357  浏览:    关键词:循环神经网络rnn

1.了解词嵌入层的作用
2.了解循环网络层的作用

1.词嵌入层

将文本进行数值化,词嵌入层首先会根据输入的词的数量构建一个词向量矩阵,例如:我们有 100 个词,每个词希望转换成 128 维度的向量,那么构建的矩阵形状即为:100*128,输入的每个词都对应了一个该矩阵中的一个向量。

分词   去重 

构建索引列表  

构建词嵌入层 embedding(单词数量,维度)   embed(tensor) 输入为tensor

import jieba
import torch
import torch.nn as nn
from torch.onnx.symbolic_opset9 import tensortext = '啥什尼基hi你哈是汉纳省的,啊飒飒的'#分词
words = jieba.lcut(text)
print(words)
#['啥', '什尼基', 'hi', '你', '哈', '是', '汉', '纳省', '的', ',', '啊', '飒飒', '的']# 构建索引表index_toword={}
word_toindex={}#去重 set 它是无序且唯一元素的集合。当你将一个列表 words 作为参数传递给 set() 函数时,Python 会自动去除列表中的重复元素。
unique_word=list(set(words))for index,word in enumerate(words):index_toword[index]=wordword_toindex[word]=index# 构建词嵌入层
embed = nn.Embedding(num_embeddings=len(index_toword),embedding_dim=4)
# embed输入为tensor
print(index_toword[0])
print(embed(torch.tensor(0)))
'''
啥
tensor([-1.4100, -0.4027,  0.5297, -1.4162], grad_fn=<EmbeddingBackward0>)
'''

 2rnn

词嵌入层将文本信息转化为数字信息,然而文本信息具有序列特征(文本信息是由顺序的),为了表示序列关系,这就需要用到rnn对数据建模,rnn具有记忆功能的网络,处理带有序列特征的样本数据.

输入层的数量跟隐藏层相同  只有输入的最后一个变化  隐藏层维度不变
def test01():# 初始化rnn网络#           输入的每个单词的维度   隐藏层的大小  隐藏层神经元个数(最终输出的为维度)rnn = nn.RNN(input_size=128, hidden_size=256)# 输入的数据 当前的 隐藏层的#                    输入的大小   样本数量      输入的维度#inputs = torch.randn(seq_len=1,batch_size= 4,input_size=128)inputs = torch.randn(8,16,128)# #####输入层的数量跟隐藏层相同# 初始化隐藏层   层数                        维度#hn=torch.zeros(num_layers=1,batch_size=4,hidden_size=256)hn=torch.zeros(1,16,256)# 输入模型outputs,hn=rnn(inputs,hn)print(outputs.shape)print(hn.shape)'''torch.Size([8, 16, 256])torch.Size([1, 16, 256])
'''

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词