神经网络入门实战:(九)分类问题 → 神经网络模型搭建模版和训练四步曲
(一) 神经网络模型搭建官方文档
每一层基本都有权重和偏置,可以仔细看官方文档。
pytorch 官网的库:torch.nn — PyTorch 2.5 documentation

- Containers库:用来搭建神经网络框架(包含所有的神经网络的框架);
- 特征提取:
- Convolution Layers:用来搭建卷积层;
- Pooling layers:用来搭建池化层;
- Padding Layers:用来搭建填充层;
- 分类:
- Linear Layers:用来搭建全连接层。
(二) 神经网络模型模版(Containers库中的nn.Module)
在写代码的过程中,通常会把神经网络定义成一个类(class),其模版就如下所示:
# 我们的模型类应该继承自nn.Module,这是所有神经网络模块的基类。
# 每个模型类中,都必须要定义以下两个
class LinearModel(torch.nn.Module): # 其中nn是神经网络neural network的缩写def __init__(self): # 构造函数,初始化对象时调用的函数,名字也不能变super(LinearModel,self).__init__() # 直接写super().__init__()也行self.linear = torch.nn.Linear(1,1)def forward(self, x): # 前向传播函数,就必须要叫这个名字,因为 nn.Module 类的call方法里调用了名为forward函数y_pred = self.linear(x)return y_pred
model = LinearModel()# 其中反向传播的计算,是自动进行的,所有继承自Module的类,都如此。
示例:
import torch
from torch import nnclass testNet(nn.Module):def __init__(self):super(testNet, self).__init__()def forward(self, input):output = input + 4return outputfirst_net = testNet()
x = torch.tensor(1.0)
output = first_net(x) # 因为 nn.Module 类的call方法里调用了名为forward函数,所以这里可以直接将实例当做函数使用。
print(output)
------------------------------------------------------------------------------------------------------------------
# 运行结果
tensor(5.)
(三) 神经网络训练套路(四部曲)
其中的损失函数、优化器,以及训练循环体后面会详细讲解
准备数据集 → 设计模型 → 创建损失函数和优化器 → 写训练循环体。
以逻辑回归为例:

| 上一篇 | 下一篇 |
|---|---|
| 神经网络入门实战(八) | 神经网络入门实战(十) |
相关文章:
神经网络入门实战:(九)分类问题 → 神经网络模型搭建模版和训练四步曲
(一) 神经网络模型搭建官方文档 每一层基本都有权重和偏置,可以仔细看官方文档。 pytorch 官网的库:torch.nn — PyTorch 2.5 documentation Containers库:用来搭建神经网络框架(包含所有的神经网络的框架);…...
Unity网络框架对比 Mirror|FishNet|NGO
在Unity中制作非单机项目常用的免费网络框架,这里选取了三款比较火的网络框架,Mirror、FishNet和Netcode for GameObject(NGO)。 比较了最常用的免费网络解决方案。可能还有值得探索的付费选项。您需要对此进行自己的研究。数据表格更新日志截止到&#…...
深入了解阿里云 OSS:强大的云存储解决方案
在现代互联网应用中,数据存储是一个不可忽视的环节。随着数据量的不断增长,传统的存储方式已经无法满足高速、低成本、大容量的需求。阿里云 OSS(对象存储服务)作为一种高性能、低成本且具备高度扩展性的云存储服务,已…...
ansible使用说明
将安装包拷贝到主控端主机 在主控端主机安装ansible,sh setup.sh 确认安装成功后,编辑hosts文件(按步骤逐个添加主机组,不要一开始全部配置好) [site-init]下的主机列表为被控制的主机(按照当前ai建模方案…...
Qt 2D绘图之四:绘图中的其他问题
参考文章链接: Qt 2D绘图之四:绘图中的其他问题 重绘事件 前面讲到的所有绘制操作都是在重绘事件处理函数paintEvent()中完成的,是QWidget类中定义的函数。一个重绘事件用来重绘一个部件的全部或者部分区域,下面几个原因中的任意一个都会发生重绘事件: repaint()函数或者…...
启动中断函数HAL_TIM_Base_Start_IT()
一、这是定时器中断: 前面的NVIC是我们在正常使能定时器的中断,后面的HAL_TIM_Base_Start_IT(&htim2)才是我们真正启动中断。 启动定时器的中断并不会立刻进入中断函数。它只是启动定时器并使能定时器的中断。中断函数(例如 TIM2_IRQHan…...
Docker Buildx 与 CNB 多平台构建实践
一、Docker Buildx 功能介绍 docker buildx 是 Docker 提供的一个增强版构建工具,支持更强大的构建功能,特别是在构建多平台镜像和高效处理复杂 Docker 镜像方面。 1.1 主要功能 多平台构建支持 使用 docker buildx,可以在单台设备上构建…...
从Apache Solr 看 Velocity 模板注入
前言 学过 freemaker,学过 Thymeleaf 模板注入,但是还没有学过 Velocity 模板注入,然后学习一个知识最好的方法就是要找一个实际中的例子去学习,好巧不巧,前端时间还在分析 apache solr 的 cve,这次又搜到…...
Spring 事务和事务传播机制
Spring 事务和事务传播机制 一、Spring 事务的基本概念 事务是一组操作,被视为一个不可分割的工作单元,要么全部完成,要么全部失败回滚,以此来确保数据的一致性和完整性。Spring事务管理允许我们在应用程序中声明式地或编程式地…...
flutter 解决webview加载重定向h5页面 返回重复加载问题
long time no see. 如果觉得该方案helps,点个赞,评论打个call,这是我前进的动力~ 通常写法: 项目里用的webview_flutter 正常webview处理返回事件 if (await controller.canGoBack()) {controller.goBack(); } else {Navigator…...
STM32的寄存器是几位的?
STM32的“32”顾名思义就是32位的意思 但是STM32 的寄存器并不都是 32 位的,它们的位宽取决于具体的寄存器和处理器架构。STM32 是基于 ARM Cortex-M 系列内核的微控制器,而这些内核的寄存器通常有不同的位宽。 具体来说,STM32 微控制器的寄…...
基于python的汽车数据爬取数据分析与可视化
一、研究背景 基于提供的代码片段和讨论,我们可以得出一个与网络抓取、数据处理和数据可视化相关的研究背景,该背景涉及到汽车行业。以下是研究背景的陈述: "在迅速发展的汽车行业中,准确和及时的数据对各方利益相关者至关…...
使用mtools搭建MongoDB复制集和分页集群
mtools介绍 mtools是一套基于Python实现的MongoDB工具集,其包括MongoDB日志分析、报表生成及简易的数据库安装等功能。它由MongoDB原生的工程师单独发起并做开源维护,目前已经有大量的使用者。 mtools所包含的一些常用组件如下: mlaunch支…...
Redis(配置文件属性解析)
一、tcp-backlog深度解析 tcp-backlog是一个TCP连接的队列,主要用于解决高并发场景下客户端慢连接问题。配置文件中的“511”就是队列的长度,对联与TCP的三次握手有关,不同的linux内核,backlog队列中存放的元素(客户端…...
思维导图+实现一个登录窗口界面
QQ2024122-205851 import sys from PyQt6.QtGui import QIcon, QPixmap, QMovie from PyQt6.QtWidgets import QApplication, QWidget, QLineEdit, QPushButton, QLabel, QVBoxLayout# 封装我的窗口类 class LoginWidget(QWidget):# 构造函数def __init__(self):# 初始化父类su…...
T507 buildroot linux4.9之RTC8563开发调试
文章目录 前言一、硬件确认1.1、RTC8563硬件二、驱动配置2.1、驱动位置2.2、使用config宏配置驱动2.3、DTS配置三、断电重启时间不保存分析四、解决问题五、测试前言 调试T507的RTC8563,解决中调试遇到的问题 一、硬件确认 1.1、RTC8563硬件 通过原理图确认 RTC8563 硬件的…...
网络安全专业术语
网络安全专有名词详解 1.肉鸡 被黑客操控的终端设备(电脑、服务器、移动设备等等),黑客可以随心所欲的操作这些终端设备而不会被发觉。 2.木马 表面上伪装成正常的程序,但是当这些程序运行时候就会获取整个系统的控制权限&#…...
【大数据学习 | Spark-SQL】关于RDD、DataFrame、Dataset对象
1. 概念: RDD: 弹性分布式数据集; DataFrame: DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格。带有schema元信息,即DataFrame所表示的二维表数据集的每一列都带有名称和类型…...
zerotier实现内网穿透
zerotier的内网穿透 前言一、zerotier的框架认知二、客户端安装设置1.linux2.windows 前言 摸索了一阵,看了好几篇,没有讲清楚。争取这次说清楚。 一、zerotier的框架认知 先认识一下zerotier的框架,这样如何处理就很好理解了。 首先上zero…...
Ardusub源码剖析——control_althold.cpp
代码 #include "Sub.h"/** control_althold.pde - init and run calls for althold, flight mode*/// althold_init - initialise althold controller bool Sub::althold_init() {if(!control_check_barometer()) {return false;}// initialize vertical maximum sp…...
Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
PHP 8.5 即将发布:管道操作符、强力调试
前不久,PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5!作为 PHP 语言的又一次重要迭代,PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是,借助强大的本地开发环境 ServBay&am…...
