b站小土堆pytorch学习记录—— P16 神经网络的基本骨架 nn.Module的使用

文章目录

  • 一、前置知识
    • 1.nn是什么
    • 2.nn如何使用
  • 二、代码

一、前置知识

1.nn是什么

在深度学习中,“nn” 通常是指神经网络(Neural Network)的缩写。神经网络是一种由大量神经元(neurons)相互连接而成的模型,它们模仿人类大脑的结构和功能,用于学习和处理复杂的模式和数据。

神经网络在深度学习领域扮演着重要的角色,被广泛应用于图像识别、语音识别、自然语言处理等各种任务。神经网络的基本组成部分是神经元(neuron),每个神经元接收来自前一层神经元的输入,并通过权重和激活函数进行计算,最终产生输出。

神经网络通常包含多个层次,包括输入层、隐藏层和输出层。通过调整神经元之间的连接权重和偏置,神经网络可以学习到输入数据的特征并进行预测或分类任务。

2.nn如何使用

基本步骤:

(1)导入 nn 模块:首先,需要导入 PyTorch 的 nn 模块。通常的导入语句是 from torch import nn。

(2)定义神经网络模型类:接下来,定义一个神经网络模型类,通常继承自 nn.Module 类。在这个类中,你可以定义模型的结构,包括各种层(如全连接层、卷积层等)以及前向传播方法 forward。

(3)在模型类的构造函数 init 中定义网络层:在模型类的构造函数中,可以使用 nn 模块提供的各种层类来定义网络的结构,比如 nn.Linear(全连接层)、nn.Conv2d(卷积层)、nn.ReLU(ReLU激活函数)等。

(4)实现前向传播方法 forward:在模型类中实现 forward 方法,指定数据在网络中前向传播的流程,即数据如何通过各个层进行计算并输出结果。

(5)实例化模型:通过实例化定义的模型类,可以创建一个可用于处理数据的神经网络模型。

(6)将输入数据传递给模型:将输入数据传递给实例化后的模型,调用模型的 forward 方法进行前向计算,得到输出结果。

二、代码

# 原作者:b站小土堆
# 云霄星乖乖的果冻
# 微博、小红书、b站等平台同名import torch
from torch import nn# 定义一个自定义的神经网络模型 Guodong
class Guodong(nn.Module):def __init__(self, *args, **kwargs) -> None:super().__init__()  # 调用父类构造函数进行初始化def forward(self, input):output = input + 1  # 在 forward 方法中定义前向传播计算,这里简单地对输入数据加1return output# 实例化 Guodong 模型
guodong = Guodong()# 创建一个张量作为输入
x = torch.tensor(1.0)# 将输入数据传递给模型进行前向计算
result = guodong(x)# 打印输入和模型输出结果
print(x)
print(result)

程序运行结果:

在这里插入图片描述

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

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

相关文章

【Python】成功解决TypeError: list indices must be integers or slices, not float

【Python】成功解决TypeError: list indices must be integers or slices, not float 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&…

vue 打包配置

vue打包配置记录一下 publicPath: 打包的路径 默认值:/(根目录); 任意路径:""或者"./" (相对路径) 参照:Vue CLI4.0 webpack配置属性——publicPath_publicpath怎么写相对路径-CSDN…

springboot读取自定义配置

springboot读取自定义配置 application.yml自定义配置 my-app:ip1:#dmz1 ftp服务器ipAddress: 172.12.23.456port: 21username: adminpassword: adminip2:ipAddress: 172.12.23.457port: 21username: adminpassword: admin方式1,Value注解 Component public clas…

两天学会微服务网关Gateway-Gateway工作原理

锋哥原创的微服务网关Gateway视频教程: Gateway微服务网关视频教程(无废话版)_哔哩哔哩_bilibiliGateway微服务网关视频教程(无废话版)共计17条视频,包括:1_Gateway简介、2_Gateway工作原理、3…

【网站项目】144校园二手物品交易平台

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

FRM模型十四:FRA估值

什么是FRA FRA(Forward rate agrreement)远期利率协议,是一种场外衍生品。FRA在0时刻确定,在未来时刻进行交易的协议。例如FRA3,6表示双方约定在3个月后以Rk的利率水平借款3个月。 应用场景:某公司未来3个月有融资需…

XWPFTemplate:基于Apache POI的Word文档模板引擎

1. 前言 在Java领域中,处理Office文档是一项常见的需求,尤其是对于生成报告、合同或其他结构化文档。Apache POI是一个广泛使用的库,用于读写Microsoft Office格式文件(包括Word、Excel等)。然而,直接操作…

Kotlin 中编写静态方法的方式详解

在 Kotlin 中,与 Java 不同,没有 static 关键字来定义静态方法。但是 Kotlin 提供了一种类似的机制来实现静态方法。本文将介绍 Kotlin 中编写静态方法的两种方式,并给出 Kotlin 和 Java 中的调用示例代码。 方式一:使用顶层函数…

Vue 3 中的 $emit 函数是如何工作的

在 Vue.js 框架中,组件间的通信是一个核心概念。Vue 提供了多种方式来实现父子组件间的通信,其中 $emit 是子组件向父组件发送消息的一种常用手段。在 Vue 3 中,随着 Composition API 的引入,$emit 的使用方式也发生了一些变化&am…

[HackMyVM] 靶场 Wave

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 (Un…

OpenCV:开源计算机视觉的魔力之门

在当今这个信息爆炸的时代,图像和视频已经成为我们获取和传递信息的主要方式之一。从社交媒体上的照片分享,到安防监控、自动驾驶等领域的图像识别与处理,计算机视觉技术正日益改变着我们的生活。而在这场技术革命中,OpenCV(Open Source Computer Vision Library)这一开源…

Java JDBC JDBC事务管理 JDBC连接池(阿里巴巴Druid连接池、C3P0连接池) JDBC工具类

Java数据库连接 Java DataBase Connectivity。JDBC 规范定义接口,具体的实现由各大数据库厂商来实现。 JDBC可让Java通过程序操作关系型数据库,JDBC基于驱动程序实现与数据库的连接与操作。 JDBC 是 Java 访问数据库的标准规范,真正怎么操作…

C++ 滑动窗口

例1 209. 长度最小的子数组 ①窗口大小不固定 ②求最小长度 -> ret INT_MAX ③数组内的值都大于0, 符合单调性(sum nums[right] -> sum增大) while里面符合条件,在里面更改ret 参考代码 class Solution { public:i…

redis常见面试问题合集

什么是Redis? Redis是一个开源的、基于内存的数据结构存储系统,它可以用作数据库、缓存和消息队列。Redis支持多种数据类型,包括字符串、列表、集合、有序集合和哈希表。 Redis支持的数据类型有哪些? Redis支持五种主要的数据类…

【LeetCode打卡】Day25|216.组合总和III、17.电话号码的字母组合

学习目标: 216.组合总和III 17.电话号码的字母组合 学习内容: 216.组合总和III 题目链接 &&文章讲解 找出所有相加之和为 n 的 k 个数的组合,且满足下列条件: 只使用数字1到9每个数字 最多使用一次 返回所有可能的有效…

集成测试之我的初步学习与总结

基本概念 将软件集成起来后进行测试。 集成测试又叫子系统测试、组装测试、部件测试等。集成测试主要是针对软件高层设计进行测试,一般来说是以模块和子系统为单位进行测试。 集成测试包含的层次 模块内的集成,主要是测试模块内各个接口间的交互集成…

我是如何系统自学python的,值得一看!

当然,我很乐意帮助你规划一个系统的Python自学计划。以下是我为你准备的一个简洁、高效、实战的Python自学指南: 第一步:基础语法和数据结构 学习Python的基本语法,包括变量、数据类型、运算符、条件语句、循环语句等。理解Pyth…

day_12二叉树理论基础以及遍历

第六章 二叉树part01 今日内容: 理论基础 递归遍历 迭代遍历 统一迭代 详细布置 题目分类 二叉树的种类 二叉树有两种主要的形式:满二叉树和完全二叉树。 满二叉树 满二叉树:如果一棵二叉树只有度为0的结点和度为2的结点,并…

java ThreadPoolExecutor 线程池

优点 ThreadPoolExecutor 提供了强大的灵活性和自定义参数的能力,可以根据实际需求来灵活配置线程池的行为。 位置 java.util.concurrent 包下 构造函数 public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit,…

进程与线程:通过实际生活来解析计算机的基本运作单位

进程与线程 进程与线程:详细解析计算机的基本运作单位1. 进程:独立的执行环境1.1 进程的特点: 2. 线程:轻量级的执行单元2.1 线程的特点: 3. 区别和联系4. 表格 进程与线程:详细解析计算机的基本运作单位 在…