pytorch学习笔记二:用pytorch神经网络模型做气温预测、分类任务构建和分类网络构建、卷积神经网络原理介绍

文章目录

    • 一、搭建pytorch神经网络进行气温预测
      • 1)基础搭建
      • 2)实际操作标识特征和标签
      • 3)构建成标准化的预处理数据(做标准化收敛速度更快)
    • 二、按照建模顺序构建完成网络架构
      • 1)np.array格式的标签(y)和特征(x)转为tensor格式数据
      • 2)显示特征14个转为128个隐式特征weight和偏执biases128个去微调,并设置学习率
      • 3)for循环batchsize(1000)次处理数据
    • 三、简化代码来训练网络模型
      • 1)参数解释
      • 2)实际训练简化代码
      • 3)预测训练结果并画图
    • 四、分类任务概述
      • 1)下载并解压Mnist数据集
      • 2)分类任务的原理
      • 3)nn.functional模块和nn.Module模块使用介绍
    • 五、构建分类网络
      • 1)把x和y都转成tensor格式
      • 2)定义函数并使用
      • 3)创建一个model来简化模型
    • 六、DataSet模块介绍与应用方法
    • 七、卷积神经网络应用领域和卷积作用
      • 1)卷积神经网络能做的事
      • 2)卷积神经网络NN和传统神经网络CNN区别
      • 3)整体架构
      • 4)卷积做了一件什么事?
    • 八、卷积的作用(略)
    • 九、卷积特征值计算方法
      • 1)图像颜色通道(RGB)
      • 2)实际提取特征流程
      • 3)利用不同卷积核得到不同特征图(28x28x6,6张图)
    • 十、得到特征图表示
    • 十一、步长与卷积核大小对结果影响
      • 1)只做一次特征图就够了吗?
      • 2)卷积层涉及参数

一、搭建pytorch神经网络进行气温预测

1)基础搭建

  • 加载模块代码

在这里插入图片描述

  • 读取气温数据
    在这里插入图片描述
  • 参数解释
    在这里插入图片描述
  • 查看数据维度
print('数据维度',  features.shape)

**加粗样式**

  • 时间处理字符串
    在这里插入图片描述

  • 准备用数据画曲线图
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 对周几这种数据做独热编码(把数据转成做数值的形式)
    在这里插入图片描述

2)实际操作标识特征和标签

  • 备注
    ①标签labels就是y=kx+b中的y,只要标识出来
    ②把标签在x中去掉,也就是在特征中去掉标签(特征就是x)
    ③转换成合适格式,也就是把数据转成np.array的格式
    ④features.shape里面显示了数据有384行,特征有14个

在这里插入图片描述

3)构建成标准化的预处理数据(做标准化收敛速度更快)

在这里插入图片描述

二、按照建模顺序构建完成网络架构

1)np.array格式的标签(y)和特征(x)转为tensor格式数据

在这里插入图片描述

2)显示特征14个转为128个隐式特征weight和偏执biases128个去微调,并设置学习率

  • 注意
    这是回归任务,所以最终要得到一个实际的值,所以weight2是【128,1】,则偏置参数biases2也只是只有1个

在这里插入图片描述

3)for循环batchsize(1000)次处理数据

①先计算隐层结果

hidden = x.mm(weights) + biases

②按照惯例在结果之前加入激活函数relu

hidden = torch.relu(hidden)

③收敛把w2乘过来计算

predictins = hiddenmm(weights2) + biases2

④计算损失
(预测值减去真实值,再做平均方误差)

loss = torch.mean((predictions - y) ** 2)
#放到数组,数据转为numpy格式
losses.append(loss.data.numpy())

在这里插入图片描述

⑤反向传播并更新参数(根据损失去更新最新的w1、B1,w2、B2)

loss.backward()# 更新参数
weights.data.add_(- learning_rate * weights.grad.data)
biases.data.add_(- learning_rate * biases.grad.data)
weights2.data.add_(- learning_rate * weights2.grad.data)
biases2.data.add_(- learning_rate * biases2.grad.data)

在这里插入图片描述

⑥每次迭代记得清空计算出来的数值(记得计算梯度时都需要清空参数)

weights.grad.data.zero_()
biases.grad.data.zero_()
weights2.grad.data.zero_()
biases2.grad.data.zero_()

三、简化代码来训练网络模型

1)参数解释

input_size:总共样本数量
hidden_size:隐藏特征个数
output_size:输出结果个数
batch_size:16(一次训练的数据数量,之前是全部读进去)

2)实际训练简化代码

①构建网络模型(这里用的Adam动态调整学习率)
在这里插入图片描述
②训练网络
在这里插入图片描述

3)预测训练结果并画图

  • 备注
    ①其实就是转为numpy格式画图
    ②x轴为时间
    ③这里reshape(-1)表示一列的意思
    ④真实值用蓝色表示,预测值用红色表示
    在这里插入图片描述
    在这里插入图片描述
  • 结果展示
    在这里插入图片描述

四、分类任务概述

  • 与之前的回归模型的区别
    ①得到的结果是不同的
    ②使用的损失函数也是不同的

  • 学习目的:Mnist分类任务
    ①网络基本构建与训练方法,常用函数解析
    ②torch.nn.functional模块
    ③nn.Module模块

1)下载并解压Mnist数据集

  • 下载
    在这里插入图片描述

  • 解压
    在这里插入图片描述

  • 看数据集大概什么样子
    可以看到787是每个样本的像素点个数,可以看成是787个特征(下面是打印5这个数字)
    在这里插入图片描述

2)分类任务的原理

  • 原理
    说白了就是判断这个数字属于1到10哪个类别的概率,这里可以看到9属于9的概率是最高的87%
    在这里插入图片描述

  • 流程
    在这里插入图片描述

3)nn.functional模块和nn.Module模块使用介绍

①有可学习的参数用Module:卷积层、
②其他情况用functional:激活函数、损失函数(分类任务一般用交叉相乘作为损失函数:cross_entropy)

五、构建分类网络

1)把x和y都转成tensor格式

在这里插入图片描述

2)定义函数并使用

  • 定义函数
    在这里插入图片描述
  • 定义参数
    bs:也就是batch_size
  • 实际训练流程,并打印结果
    这里model(xb)得出预测值,yb是真实值
    在这里插入图片描述

3)创建一个model来简化模型

  • 备注
    ①必须继承nn.Module并在构造函数调用nn.Module的构造函数
    ②无需写反向传播函数,nn.Module能够利用autograd自动实现反向传播
    ③nn.Module中的可学习参数可以通过named_parameters()或parameters()返回迭代器
    ④这里的forward方法,自己会反向传播
    在这里插入图片描述

六、DataSet模块介绍与应用方法

  • 模块介绍来把数据转为数据集
    ①tensorDataSet
    ②DataLoader
    在这里插入图片描述

  • 获取数据接口
    在这里插入图片描述

  • loss_batch不仅要计算损失值还要清零梯度和反向传播(这些就是batch Normalization 和 Drop out)在这里插入图片描述

  • 获得模型的方法
    在这里插入图片描述

  • 开始测试黄金二获得结果
    在这里插入图片描述

七、卷积神经网络应用领域和卷积作用

在这里插入图片描述

1)卷积神经网络能做的事

在这里插入图片描述

2)卷积神经网络NN和传统神经网络CNN区别

在这里插入图片描述

3)整体架构

①输入层:输入的图片数据
在这里插入图片描述

②卷积层:卷积就是提取特征
在这里插入图片描述

③池化层:池化就是压缩特征
在这里插入图片描述

④全连接层(最终得出10个结果的概率排序,全连接就是两次w和b)
在这里插入图片描述

4)卷积做了一件什么事?

①把HxWxC分割成不同的区域
②对区域提取不同的特征
在这里插入图片描述

八、卷积的作用(略)

九、卷积特征值计算方法

1)图像颜色通道(RGB)

RGB三个通道分开去计算
在这里插入图片描述

2)实际提取特征流程

①这里H和W都是7,RGB代表3,所以图片的是7x7x3
在这里插入图片描述

②filter W0(3x3x3),这里3x3就是一个卷积核,前面的3x3表示多大区域选一个特征值,最后一个3和前面的输入量的最后一个3必须是一样的(这里红色的是特征图
在这里插入图片描述
③计算方法:
内积:相对应位置相乘并相加,如下图是R通道得出0,最终RGB加起来就是2
在这里插入图片描述
在这里插入图片描述

④还有偏置项bias:
在这里插入图片描述

W:(0+2+0)
Bias:b0为1
也就是说0+2+0+b0 = 2+1=3
在这里插入图片描述

3)利用不同卷积核得到不同特征图(28x28x6,6张图)

在这里插入图片描述

十、得到特征图表示

十一、步长与卷积核大小对结果影响

1)只做一次特征图就够了吗?

不断做卷积,得到堆叠的卷积层
在这里插入图片描述

2)卷积层涉及参数

①滑动窗口步长(
(1)步长大,得到图越小;
(2)小步长的特征比较丰富
(3)文本任务的步长不固定)
在这里插入图片描述

②卷积核尺寸(3x3和4x4,一般都是3x3)
在这里插入图片描述

③边缘填充

④卷积核个数

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

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

相关文章

CORE Kestrel Web、InProcess、OutOfProcess、启动配置、

Kestrel 服务 ASP.NET Core是一个跨平台框架。 这意味着它支持在不同类型的操作系统(例如Windows,Linux或Mac)上开发和运行应用程序。 Kestrel是ASP.NET Core应用程序的跨平台Web服务器。 这意味着该服务器支持ASP.NET Core支持的所有平台和…

Spring MVC 基本配置步骤 总结

1.简介 本文记录Spring MVC基本项目拉起配置步骤。 2.步骤 在pom.xml中导入依赖&#xff1a; <dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>6.0.6</version><scope>…

RTSP学习

RTSP基本原理 实时流传输协议(RTSP:RealTimeStreaming Protocol1)是一种网络传输协议,旨在发送低延迟流。 该协议由RealNetworks,Netscape和哥伦比亚大学的专家在1996年开发。它定义了应如何打包流中的数据以进行传输。 类似一个控制命令的协议play teardown 负责音视频的数据…

验收测试:从需求到交付的全程把控!

在软件开发过程中&#xff0c;验收测试是一个至关重要的环节。它不仅是对软件质量的把关&#xff0c;也是对整个项目周期的全程把控。从需求分析到最终的软件交付&#xff0c;验收测试都需要严格进行&#xff0c;以确保软件能够符合预期的质量和性能要求。 一、需求分析阶段 在…

数据结构(7.3_5)——红黑树的插入

红黑树的插入 注意&#xff1a;插入时候重点考察“不红红”特性&#xff08;红黑树的性质&#xff09; 染色&#xff1a;哪几个结点有变动就红的变黑&#xff0c;黑的变红 RR、LL、LR、RL从爷结点开始算起 非根结点的插入只需要判断是否违背的“不红红”特性 练习&#xff1…

UG NX二次开发(C#)-建模-根据拉伸体获取草图对象

文章目录 1、前言2、在UG NX中创建基于草图的拉伸对象2.1 在建模模块中进入草图环境2.2 创建拉伸特征2.3 分析拉伸特征父项3 实现代码3.1 基于NXOpen实现3.2 UFun函数实现3.3 效果1、前言 今天在QQ群中,有个群友咨询了根据拉伸体获取草图对象,我今天难得清闲一次,就讲一下吧…

PatrOwl:一款开源可扩展的安全协调运营平台

关于PatrOwl PatrOwl是一款开源可扩展的安全协调运营平台&#xff0c;广大研究人员可以使用该工具完成组织内部的安全协调运营。 该工具是一种可扩展、免费且开源的解决方案&#xff0c;用于协调安全操作。其中的PatrowlManager是前端应用程序&#xff0c;用于管理资产、实时审…

如何进行Ubuntu磁盘空间深度清理?

近期使用AutoDL算力云&#xff0c;发现系统盘只有30G&#xff0c;数据盘只有50G&#xff0c;跑一个稍微大一点的模型&#xff0c;马上空间就拉爆了&#xff0c;现在做一个磁盘深度清理操作&#xff0c;看看效果。 清理前磁盘占用如下&#xff1a; 在 Ubuntu 系统中进行磁盘深度…

云原生|浅谈云原生中的对象存储之MinIO 的使用

一、什么是对象储存 对象存储&#xff08;Object Storage&#xff09;以对象的形式存储和管理数据&#xff0c;这些对象可以是任何类型的数据&#xff0c;例如 PDF&#xff0c;视频&#xff0c;音频&#xff0c;文本或其他文件类型。对象存储使用分布式存储架构&#xff0c;数据…

Centos 8安装VNC及多用户配置详细教程

Centos 8安装VNC及多用户配置详细教程 参考一、安装前准备二、安装三、创建新用户和设置VNC密码四、创建VNC系统服务文件五、多用户映射和配置VNC六、客户端用VNC Viewer登录 参考 1、参考1&#xff1a; VNC安装英文说明&#xff08;英文说明有误且仅适合单用户&#xff09;&a…

MySQL篇(管理工具)

目录 一、系统数据库 二、常用工具 1. mysql 2. mysqladmin 3. mysqlbinlog 4. mysqlshow 5. mysqldump 6. mysqlimport/source 6.1 mysqlimport 6.2 source 一、系统数据库 MySQL数据库安装完成后&#xff0c;自带了一下四个数据库&#xff0c;具体作用如下&#xf…

基于SpringBoot+Vue的旅游攻略平台管理系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

MySQL安装文档-Windows

文章目录 MySQL安装1. 安装2. 配置 MySQL安装 1. 安装 1). 双击官方下来的安装包文件 2). 根据安装提示进行安装 安装MySQL的相关组件&#xff0c;这个过程可能需要耗时几分钟&#xff0c;耐心等待。 输入MySQL中root用户的密码,一定记得记住该密码 2. 配置 安装好MySQL之后…

光子架与电子架 -- 光子架与电子架

电子架 指插放交叉板、OTU单板、支/线路板、保护类单板的子架。 在通用型平台子架和平台子架中如果仅插放OTU单板&#xff08;非中继模式&#xff09;视为电子架。光电混合的子架视为电子架。 电子架主要实现将客户侧信号转换成标准波长的光信号&#xff0c;供光子架调度。 光子…

计算机毕业设计选题推荐-基于python的养老院数据可视化分析

精彩专栏推荐订阅&#xff1a;在下方主页&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f496;&#x1f525;作者主页&#xff1a;计算机毕设木哥&#x1f525; &#x1f496; 文章目录 一、养老院数据可…

手势手语识别数据集,YOLOv5目标检测两个数据集,图大量,模型精度高分别为近100类

手势手语识别数据集&#xff0c;YOLOv5目标检测 两个数据集&#xff0c;图大量&#xff0c;模型精度高分别为近100类 手势手语识别数据集&#xff08;Sign Language Gesture Recognition Dataset&#xff09; 数据集概述 该数据集专为手势手语识别设计&#xff0c;包含大量的…

【Python报错已解决】IndentationError: unexpected indent

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

数模方法论-无约束问题求解

一、基本概念 无约束问题在数学建模中是指优化过程中没有任何限制条件的情况。这种问题旨在寻找一个决策变量集合&#xff0c;使得某个目标函数&#xff08;如成本、效益或其他需要优化的量&#xff09;达到最大或最小值。具体来说&#xff0c;无约束问题通常可以表示为&#x…

Spring AOP - 注解方式实现

前文已经讨论了基于配置文件方式实现Spring AOP&#xff08;Spring AOP - 配置文件方式实现&#xff09;&#xff0c;本文采用注解的方式实现前文相同的功能。配置步骤如下&#xff1a; 1、项目增加aop依赖&#xff08;pom.xml) <dependency><groupId>org.springfr…

mysql复合查询 -- 多表查询(介绍,笛卡尔积,使用),自连接(介绍,使用)

目录 多表查询 介绍 使用 表数据 显示雇员名,雇员工资,以及所在部门名 显示部门号为10的部门名,员工名,工资 自连接 介绍 场景 表数据 题目 子查询 自连接 多表查询 介绍 实际开发中往往数据来自不同的表&#xff0c;所以需要多表查询 语法: from 表1,表2 (笛卡…