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

循环神经网络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 tensor

text = '啥什尼基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]=word
    word_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])
'''

相关文章:

  • 第二十:【路由的props配置】
  • 鸿蒙-canvas-刮刮乐
  • MySQL 序列
  • Docker 之mysql从头开始——Docker下mysql安装、启动、配置、进入容器执行(查询)sql
  • Python常见面试题的详解21
  • 动态自定义标签属性页面(Tomcat 9)
  • C++——模版(二)
  • 【Python爬虫(66)】解锁政府公开数据:Python爬虫实战攻略
  • 冯诺依曼体系结构 ──── linux第8课
  • Windows安装SVN客户端及其中文汉化教程
  • 【C++】面试常问八股
  • 雷池WAF动态防护技术实测
  • GTID的基本概念
  • Windows前端开发IDE选型全攻略
  • 《零基础学会!如何用 sql+Python 绘制柱状图和折线图,数据可视化一看就懂》
  • 【大模型应用之智能BI】基于 Text2SQL 的 GenBI 技术调研和深度分析(包含案例)
  • Imagination通过最新的D系列GPU IP将效率提升至新高度
  • C# 根据Ollama+DeepSeekR1开发本地AI辅助办公助手
  • idea里的插件spring boot helper 如何使用,有哪些强大的功能,该如何去习惯性的运用这些功能
  • UE(虚幻)学习(五)初学创建NPC移动和遇到的问题
  • 我国城市规划“全面体检”套餐出台,城市体检将逐步与供地计划等挂钩
  • 泽连斯基抵达安卡拉,称乌将派出最高级别代表团参与谈判
  • 齐白石精品在波士顿展出,“白石画屋”呈现水墨挥洒
  • 美国与卡塔尔签署超2435亿美元经济及军事合作协议
  • 遭“特朗普关税”冲击,韩国今年经济增长预期“腰斩”降至0.8%
  • 人民日报评外卖平台被约谈:摒弃恶性竞争,实现行业健康发展