rnn 和lstm源码学习笔记

目录

rnn学习笔记

lstm学习笔记


rnn学习笔记


import torchdef rnn(inputs, state, params):# inputs的形状: (时间步数量, 批次大小, 词表大小)W_xh, W_hh, b_h, W_hq, b_q = paramsH = stateoutputs = []# 遍历每个时间步for X in inputs:# 计算隐藏状态 HH = torch.tanh(torch.mm(X, W_xh) + torch.mm(H, W_hh) + b_h)# 计算输出 YY = torch.mm(H, W_hq) + b_qoutputs.append(Y)# 返回输出和新的隐藏状态return torch.cat(outputs, dim=0), (H,)# 参数示例初始化(根据实际情况调整)
input_size = 10  # 词表大小
hidden_size = 20  # 隐藏层大小
output_size = 5  # 输出大小# 初始化参数
W_xh = torch.randn(input_size, hidden_size)
W_hh = torch.randn(hidden_size, hidden_size)
b_h = torch.randn(hidden_size)
W_hq = torch.randn(hidden_size, output_size)
b_q = torch.randn(output_size)params = (W_xh, W_hh, b_h, W_hq, b_q)
state = (torch.zeros(4,hidden_size))# 输入示例
time_steps = 3
batch_size = 4
inputs = torch.randn(time_steps, batch_size, input_size)# 调用RNN函数
outputs, new_state = rnn(inputs, state, params)
print(outputs)
print(new_state)

lstm学习笔记

import torch
import torch.nn as nndef lstm(inputs, state, params):# inputs的形状: (时间步数量, 批次大小, 词表大小)W_xi, W_hi, b_i, W_xf, W_hf, b_f, W_xo, W_ho, b_o, W_xc, W_hc, b_c, W_hq, b_q = params(H, C) = stateoutputs = []# 遍历每个时间步for X in inputs:I = torch.sigmoid(torch.mm(X, W_xi) + torch.mm(H, W_hi) + b_i)F = torch.sigmoid(torch.mm(X, W_xf) + torch.mm(H, W_hf) + b_f)O = torch.sigmoid(torch.mm(X, W_xo) + torch.mm(H, W_ho) + b_o)C_tilda = torch.tanh(torch.mm(X, W_xc) + torch.mm(H, W_hc) + b_c)C = F * C + I * C_tildaH = O * torch.tanh(C)Y = torch.mm(H, W_hq) + b_qoutputs.append(Y)return torch.cat(outputs, dim=0), (H, C)# 参数示例初始化(根据实际情况调整)
input_size = 10  # 词表大小
hidden_size = 20  # 隐藏层大小
output_size = 5  # 输出大小# 初始化参数
W_xi = torch.randn(input_size, hidden_size)
W_hi = torch.randn(hidden_size, hidden_size)
b_i = torch.zeros(hidden_size)
W_xf = torch.randn(input_size, hidden_size)
W_hf = torch.randn(hidden_size, hidden_size)
b_f = torch.zeros(hidden_size)
W_xo = torch.randn(input_size, hidden_size)
W_ho = torch.randn(hidden_size, hidden_size)
b_o = torch.zeros(hidden_size)
W_xc = torch.randn(input_size, hidden_size)
W_hc = torch.randn(hidden_size, hidden_size)
b_c = torch.zeros(hidden_size)
W_hq = torch.randn(hidden_size, output_size)
b_q = torch.zeros(output_size)# 输入示例
time_steps = 3
batch_size = 4
inputs = torch.randn(time_steps, batch_size, input_size)params = (W_xi, W_hi, b_i, W_xf, W_hf, b_f, W_xo, W_ho, b_o, W_xc, W_hc, b_c, W_hq, b_q)
state = (torch.zeros(batch_size, hidden_size), torch.zeros(batch_size, hidden_size))  # 初始隐藏状态和单元状态# 调用LSTM函数
outputs, new_state = lstm(inputs, state, params)
print(outputs)
print(new_state)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/19857.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

五种主流数据库:常用数据类型

在设计数据库的表结构时,我们需要明确表中包含哪些字段以及字段的数据类型。字段的数据类型定义了该字段能够存储的数据种类以及支持的操作。 本文将会介绍五种主流数据库中常用的数据类型以及如何选择合适的数据类型,包括 MySQL、Oracle、SQL Server、…

【Linux】从零开始认识进程间通信 —— 共享内存

送给大家一句话: 吃苦受难绝不是乐事一桩,但是如果您恰好陷入困境,我很想告诉您:“尽管眼前十分困难,可日后这段经历说不定就会开花结果。”请您这样换位思考、奋力前行。 -- 村上春树 🔆🔆&…

[数据集][目标检测]打架检测数据集VOC格式3146张2类别

数据集格式:Pascal VOC格式(不包含分割的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):3146 标注数量(xml文件个数):3146 标注类别数:2 标注类别名称:["nofight","fight"] 每个类别…

c# - 运算符 << 不能应用于 long 和 long 类型的操作数

Compiler Error CS0019 c# - 运算符 << 不能应用于 long 和 long 类型的操作数 处理方法 特此记录 anlog 2024年5月30日

PBR系列-物理材质(上)

作者&#xff1a;游梦 对PBR系列文章感兴趣还可以看前文&#xff1a; PBR系列 - 物理光源 PBR系列-光之简史 前面两篇文章分别介绍了物理光源与光学研究简史&#xff0c;在对光有了简单认识之后&#xff0c;再认识物理材质会发现其实本质上还是对光的研究&#xff0c;再深入…

python爬取每日天气情况

python爬取每日天气情况 一、项目简介二、完整代码一、项目简介 本次爬取的目标数据来源于天气网,数据所在的页面如下图所示,本次任务较为简单,按照正常操作流程操作即可,即抓包分析数据接口,发送请求获取数据,解析数据并持久化存储。发送请求使用requests库,解析数据使…

Spring Cloud Gateway通过配置文件方式提供路由服务

一、Spring Cloud Gateway的路由匹配规则 Spring Gateway支持两种方式提供路由服务&#xff0c;其一是配置文件启用&#xff0c;其二则是通过代码达到目的&#xff0c;此文章是通过配置文件方式 二、使用步骤 1.通过配置文件方式提供路由服务 yml配置如下&#xff08;示例&a…

CMake的原理与使用方法

一.为什么需要CMake&#xff0c;什么是CMake 1.由于各种make工具遵循不同的规范和标准&#xff0c;所执行的Makefile格式也不同&#xff0c;例如 GNU Make &#xff0c;QT 的 qmake &#xff0c;微软的 MS nmake&#xff0c;BSD Make&#xff08;pmake&#xff09;&#xff0c;…

C语言基础编程题目解析:探索逻辑与算法的奥秘

C语言基础编程题目解析&#xff1a;探索逻辑与算法的奥秘 在编程的世界里&#xff0c;C语言作为一门基础且强大的编程语言&#xff0c;其题目往往涵盖了丰富的逻辑和算法知识。下面&#xff0c;我们将从四个方面、五个方面、六个方面和七个方面&#xff0c;对一系列C语言基础编…

【3GPP IAB】NR IAB推荐架构

1 概述 3GPP所有提交给RAN-3 #99的IAB多跳设计都可以用五个架构参考图来表示。这些参考图的不同之处是需要对接口进行修改&#xff0c;或者需要额外的功能&#xff0c;例如完成多跳转发。这五个体系结构被分为两个体系结构组。这些架构的主要特点可以概括如下: 架构组1:由架构1…

vxe-table校验,获取行内任意元素值

validRules: { lngoutitemid: [{ validator(e) { if (e.row.行内条件字段属性=="1"&&!e.cellValue) {

装机时zfs正在使用的问题解决

在安装FreeBSD的时候&#xff0c;每次安装错误&#xff0c;再次安装的时候&#xff0c;就说找不到zfs盘&#xff0c;手工去找到盘&#xff0c;想删除zfs分区&#xff0c;也说不能删除 umount /mnt 报错 后来是把/mnt下面的目录一个一个删除&#xff0c;最后删除/mnt&#xff0…

java期末突击

目录 1. 快速入门 2. 类 3. 成员方法 4. 构造器 5. 单例模式 6. 继承 7. 抽象类 8. 多线程&#xff08;Thread与Runnable&#xff09; 1. 快速入门 public class Hello {public static void main(String[] args){System.out.println("Hello,World&q…

从头开始构建GPT标记器

从头开始构建GPT标记器 对于GPT Tokenizer&#xff0c;论文《Language Models are Unsupervised Multitask Learners》中介绍了一种字节级编码作为LLM的标记化机制&#xff1a; The vocabulary is expanded to 50,257. We also increase the context size from 512 to 1024 to…

ReactNative集成到已有iOS项目

最近在维护一个项目&#xff0c;需要引入ReactNative开发新UI。记录一下过程&#xff0c;表示我搞过。V 需要安装node环境 brew install node npm install -g yarn接着创建一个目录用来保存工程文件&#xff0c;并在目录项目下面创建一个package.json文件 mkdir demo cd dem…

C# 代码配置的艺术

文章目录 1、代码配置的定义及其在软件工程中的作用2、C# 代码配置的基本概念和工具3、代码配置的实践步骤4、实现代码配置使用属性&#xff08;Properties&#xff09;使用配置文件&#xff08;Config Files&#xff09;使用依赖注入&#xff08;Dependency Injection&#xf…

跨境电商如何有效做好店铺账号管理?

跨境电商有效做好店铺账号管理至关重要&#xff0c;类似亚马逊、Temu、TikTok、ebay跨境电商账号涉及多个方面&#xff0c;包括多个账户的安全性、合规性、操作效率等。以下是一些我自己实操的策略和实践&#xff0c;希望能够帮助大家更好地管理跨境电商店铺账号。 一、哪些行为…

.vimrc 配置项

[rootlocalhost tmp]# cat ~/.vimrc 启用语法高亮 syntax on 显示行号 set number 启用缩进 set autoindent 显示匹配的项 set showmatch 启用鼠标支持 set mousea 将制表符 (Tab) 替换为空格 set expandtab set tabstop4 set shiftwidth4

Spring Boot 整合 spring-boot-starter-mail 实现邮件发送和账户激活

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

单片机串口接收负数的处理方法

dp80中有很多外设处理相关的都是有符号数据。 如dpm计算的结果&#xff0c;插入dpm后有时候会得到0xFFFFFFFE-2&#xff08;从调试界面也可以看到&#xff09;。