RNN模型案例演示

news2024/10/5 12:54:18

RNN模型案例演示:

import torch
import torch.nn as nn


class RNN(nn.Module):
    def __init__(self, input_size, hidden_size, output_size):
        """
        初始化函数中的三个参数,分别是输入层张量最后一维的尺寸大小,隐藏层张量最后一维的尺寸大小,输出层张量最后一维的尺寸大小
        :param input_size: 入层张量最后一维的尺寸大小
        :param hidden_size: 隐藏层张量最后一维的尺寸大小
        :param output_size: 输出层张量最后一维的尺寸大小
        """
        super(RNN, self).__init__()
        # 传入隐藏层尺寸大小
        self.hidden_size = hidden_size
        """
        构建从输入层到隐藏层的线性变化,这个线性层的输入尺寸是 input_size + hidden_size
        这是因为在循环网络中,每次输入都有两部分组成,分别是当前时刻的输入x(t)和上一时刻产生的输出h(t-1)
        这个线性层的输出尺寸是 hidden_size
        """
        self.i2h = nn.Linear(input_size + hidden_size, hidden_size)
        """
        构建从输入层到输出层的线性变化,这个线性层的输入还是 input_size + hidden_size
        这个线性层的输出尺寸是 output_size
        """
        self.h2o = nn.Linear(input_size + hidden_size, output_size)
        # 最后,需要对输出做 softmax 处理,获取得接货
        self.softmax = nn.LogSoftmax(dim=-1)

    def forward(self, input, hidden):
        """
        在 forward 函数中,参数分别是规定尺寸的输入层张量,以及规定尺寸的初始化隐藏层张量
        :param input: 规定尺寸的输入层张量
        :param hidden: 规定尺寸的初始化隐藏层张量
        :return: 输出张量和最后的隐藏层结果
        """
        # 首先使用 torch.cat 将 input 和 hidden 进行张量拼接
        combined = torch.cat(input, hidden)
        # 通过输入层到影藏层变换获得 hidden 张量
        hidden = self.i2h(combined)
        # 通过输入层到输出层变换获得 output 张量
        output = self.i2o(combined)
        # 对输出进行 softmax 进行处理
        output = self.softmax(output)
        # 返回输出张量和最后的隐藏层结果
        return output, hidden

    def initHidden(self):
        """
        隐藏层初始化函数
        :return: 将隐藏层初始化为一个 1 x hidden_size 的全0张量
        x:乘法符号
        """
        return torch.zeros(1, self.hidden_size)

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

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

相关文章

异步主从复制

主从复制的概念 主从复制是一种在数据库系统中常用的数据备份和读取扩展技术,通过将一个数据库服务器(主服务器)上的数据变更自动同步到一个或多个数据库服务器(从服务器)上,以此来实现数据的冗余备份、读…

【CUDA】 扫描 Scan

Scan Scan操作是许多应用程序中常见的操作。扫描操作采用一个二元运算符⊕和一个输入数组并计算输出数组如下: [x0,(x0⊕x1),…,( x0⊕x1⊕…..⊕xn-1)] 分层扫描和多种Scan算法介绍 Kogge-Stones Algorithm Kogge-Stones Algorithm最初是为设计快速加法电路而发…

Android Graphics 显示系统 - 监测、计算FPS的工具及设计分析

“ 在Android图像显示相关的开发、调试、测试过程中,如何能有效地评估画面的流畅度及监测、计算图层渲染显示的实时FPS呢?本篇文章将会提供一种实用、灵巧的思路。” 01 设计初衷 面对开发测试中遇到的卡顿掉帧问题,如何在复现卡顿的过程中持…

黑马的ES课程中的不足

在我自己做项目使用ES的时候,发现了黑马没教的方法,以及一些它项目的小问题 搜索时的匹配方法 这个boolQuery().should 我的项目是通过文章的标题title和内容content来进行搜索 但是黑马它的项目只用了must 如果我们的title和content都用must&#x…

QCustomPlot+ vs2022+ qt

零、printSupport 步骤一:下载QCustomPlot 访问QCustomPlot的官网 QCustomPlot 下载最新版本的源代码。 步骤二:配置项目 创建新的Qt项目: 打开VS2022,创建一个新的Qt Widgets Application项目。 将QCustomPlot源代码添加到项目…

C语言编程与进阶

1.0 C语言关键字 1-1C语言关键字-CSDN博客文章浏览阅读831次,点赞13次,收藏24次。define使用define定义常量return 0;使用define定义宏// define 定义宏,名字是ADD(x,y),x y 是宏的参数int a 10;int b 20;return 0;宏定义的本质是替换&am…

JavaEE——计算机工作原理

冯诺依曼体系(VonNeumannArchitecture) 现代计算机,大多遵守冯诺依曼体系结构 CPU中央处理器:进行算术运算与逻辑判断 存储器:分为外存和内存,用于存储数据(使用二进制存储) 输入…

百日筑基第十二天-入门Elasticsearch

百日筑基第十二天-入门Elasticsearch Elasticsearch 是什么 Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎。 安装 Elasticsearch 下载:https://www.elastic.co/cn/downloads/elasticsearch Elasticsearch 是免安装的,只需要把 zip…

绝了,华为伸缩摄像头如何突破影像边界?

自华为Pura70 Ultra超聚光伸缩镜头诞生以来,备受大家的关注,听说这颗镜头打破了传统手机的摄像头体积与镜头的设计,为我们带来了不一样的拍照体验。 智能手机飞速发展的今天,影像功能已经成为我们衡量一款手机性能的重要指标。想…

【Qt5.12.9】程序无法显示照片问题(已解决)

问题记录:Qt5.12.9下无法显示照片 我的工程名为03_qpainter,照片cd.png存放在工程目录下的image文件夹中。 /03_qpainter/image/cd.png 因为这是正点原子Linux下Qt书籍中的例程,在通过学习其配套的例程中的项目,发现我的项目少…

Python的招聘数据分析与可视化管理系统-计算机毕业设计源码55218

摘要 随着互联网的迅速发展,招聘数据在规模和复杂性上呈现爆炸式增长,对数据的深入分析和有效可视化成为招聘决策和招聘管理的重要手段。本论文旨在构建一个基于Python的招聘数据分析与可视化管理系统。 该平台以主流招聘平台为数据源,利用Py…

昇思25天学习打卡营第1天|初识MindSpore

# 打卡 day1 目录 # 打卡 day1 初识MindSpore 昇思 MindSpore 是什么? 昇思 MindSpore 优势|特点 昇思 MindSpore 不足 官方生态学习地址 初识MindSpore 昇思 MindSpore 是什么? 昇思MindSpore 是全场景深度学习架构,为开发者提供了全…

Ubuntu固定虚拟机的ip地址

1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安装时报错W: Target CNF (multiverse/cnf/Commands-all) is configured multiple times in /etc/apt/sources.list:10, 检查 /etc/apt/sources.list…

计算机组成原理--概述

🌈个人主页:小新_- 🎈个人座右铭:“成功者不是从不失败的人,而是从不放弃的人!”🎈 🎁欢迎各位→点赞👍 收藏⭐️ 留言📝 🏆所属专栏&#xff1…

AI Earth应用—— 在线使用sentinel数据VV和VH波段进行水体提取分析(昆明抚仙湖、滇池为例)

AI Earth 本文的主要目的就是对水体进行提取,这里,具体的操作步骤很简单基本上是通过,首页的数据检索,选择需要研究的区域,然后选择工具箱种的水体提取分析即可,剩下的就交给阿里云去处理,结果如下: 这是我所选取的一景影像: 详情 卫星: Sentinel-1 级别: 1 …

Redis IO多路复用

0、前言 本文所有代码可见 > 【gitee code demo】 本文涉及的主题: 1、BIO、NIO的业务实践和缺陷 2、Redis IO多路复用:redis快的主要原因 3、epoll 架构 部分图片 via 【epoll 原理分析】 1、BIO单线程版 1.1 业务代码 client client代码相同…

Proxmox VE 8虚拟机直通USB磁盘

作者:田逸(fromyz) 今天有个兄弟发消息,咨询怎么让插在服务器上的U盾被Proxmox VE上的虚拟机识别。在很久很久以前,我尝试过在Proxmox VE 5以前的版本创建windows虚拟机,并把插在Proxmox VE宿主机上的银行U…

Vue3基础(二)

一、搭建工程(vite) ## 1.创建命令 npm create vuelatest## 2.具体配置 ## 配置项目名称 √ Project name: vue3_test ## 是否添加TypeScript支持 √ Add TypeScript? Yes ## 是否添加JSX支持 √ Add JSX Support? No ## 是否添加路由环境 √ Add Vue Router for Single P…

【matlab】智能优化算法——基准测试函数

智能优化算法的基准测试函数是用于评估和优化算法性能的一组标准问题。这些测试函数模拟了真实世界优化问题的不同方面,包括局部最小值、全局最优解、高维度、非线性、不连续等复杂性。以下是对智能优化算法基准测试函数的详细归纳: 测试函数的分类&…

使用nohup和CUDA_VISIBLE_DEVICES进行GPU训练的教程

文章目录 1. 在单个GPU上训练模型1.1 使用nohup命令运行Python脚本1.2 查看运行中的进程1.3 查看输出日志 2. 在多个GPU上训练模型2.1 启动第一个程序,指定使用第0号GPU2.2 启动第二个程序,指定使用第1号GPU2.3 查看运行中的进程2.4 查看输出日志 3. 总结…