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

news2024/9/24 6:18:00

文章目录

    • 一、搭建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.coloradmin.cn/o/2159640.html

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

相关文章

从入门到精通:计算机视觉学习路线与实战项目推荐

全面解析计算机视觉的学习路径,深入探讨关键技术与实战项目,助您快速掌握核心技能 引言 随着人工智能的飞速发展,计算机视觉已成为AI领域中最具潜力和应用价值的分支之一。从自动驾驶到医疗影像分析,计算机视觉技术正在改变我们的…

9.23-部署项目

部署项目 一、先部署mariadb [rootk8s-master ~]# mkdir aaa [rootk8s-master ~]# cd aaa/ [rootk8s-master aaa]# # 先部署mariadb [rootk8s-master aaa]# # configmap [rootk8s-master aaa]# vim mariadb-configmap.yaml apiVersion: v1 kind: ConfigMap metadata:name: ma…

【通俗易懂介绍OAuth2.0协议以及4种授权模式】

文章目录 一.OAuth2.0协议介绍二.设计来源于生活三.关于令牌与密码的区别四.应用场景五.接下来分别简单介绍下四种授权模式吧1.客户端模式1.1 介绍1.2 适用场景1.3 时序图 2.密码模式2.1 介绍2.2 适用场景2.3时序图 3.授权码模式3.1 介绍3.2 适用场景3.3 时序图 4.简化模式4.1 …

【LIO-SAM】LIO-SAM论文翻译(2020年)

【LIO】LIO-SAM论文翻译(2020年) 1.Abstract2.INTRODUCTION4.通过平滑和映射实现激光雷达惯性里程计A. 系统概述B. IMU Preintegration Factor(推导过程参阅)C. Lidar Od…

对onlyoffice进行定制化开发

基于onlyoffice8.0源码,进行二次开发,可实现包括但不限于以下的功能 1、内容控件的插入 2、内容空间的批量替换 3、插入文本 4、插入图片 5、添加,去除水印 6、修改同时在线人数限制 7、内容域的删除 8、页面UI的定制化 9、新增插件开发 10、…

Pytest-如何将allure报告发布至公司内网

原理简介 使用Python启动HTTP服务器,指定一个端口号port,内网用户可以使用ipport访问报告。 本文章继续进阶,简单使用nginx进行一个代理,使用域名可以直接访问报告。 前情概述 Pytest-allure如何在测试完成后自动生成完整报告&am…

Ansible流程控制-条件语句_循环语句

文章目录 Ansible流程控制条件语句且、或、非、是模糊条件when指令的详细使用方法 循环语句如何使用使用item变量结合with_items或loop指令item变量有固定子元素? 实例-服务器安装基础环境优化需求部分实现换指定新仓库安装基础软件包 Ansible流程控制 一、 1. 条件…

opencv4.5.5 GPU版本编译

一、安装环境 1、opencv4.5.5 下载地址:https://github.com/opencv/opencv/archive/refs/tags/4.5.5.ziphttps://gitee.com/mirrors/opencv/tree/4.5.0 2、opencv-contrib4.5.5 下载地址:https://github.com/opencv/opencv_contrib/archive/refs/tags/4…

塑料瓶回收流水线分拣系统源码分享

塑料瓶回收流水线分拣检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comp…

介绍GPT-o1:一系列解决困难问题( science, coding, and math )的推理模型

openai o1介绍 一、官方技术报告要点剖析实验1 benchmark分析实验2:和phd比赛技术细节:Chain of Thought的使用人类偏好评估Human preference evaluationsatety技术细节:隐藏思维链为监控模型提供了机会:)openai的几点conclusion 二、官方介绍剖析 Intro…

【C++】8.类和对象(6)

文章目录 5. 内部类6. 匿名对象7. 对象拷贝时的编译器优化 5. 内部类 如果一个类定义在另一个类的内部,这个内部类就叫做内部类。内部类是一个独立的类,跟定义在全局相比,他只是受外部类类域限制和访问限定符限制,所以外部类定义的…

【信号与系统】2、系统

1、线性系统 举例: (1),是线性系统 (2),是线性系统 (3),微分器,是线性系统 (4),积分器,是线性…

具身智能火了,但规模落地还需时间

作者 | 辰纹 来源 | 洞见新研社 “人工智能下一个浪潮是具身智能,即能理解、推理并与物理世界互动的智能系统”, 英伟达CEO黄仁勋去年在ITF World 2023半导体大会上的预测正在成为现实。 5月份,日本横滨召开的国际顶级机器人学术会议&…

专业120+总分400+中国科学技术大学843信号与系统考研经验中科大电子信息通信工程,生物医学工程,苏医工,真题,大纲,参考书。

经过将近一年的复习备考,专业843信号与系统120,总分400,顺利上岸朝思暮想的中科大。总结一些自己的备考经验,希望能给大家一些参考,少走弯路。首先讲一下大家最关注的专业课:843信号与系统 中科大843专业课…

动态规划算法:10.路径问题_地下城游戏_C++

目录 题目链接:174. 地下城游戏 - 力扣(LeetCode) 一、题目解析 题目:​编辑 解析: 二、算法原理 1、状态表示 2、状态转移方程 状态转移方程推理: 3、初始化 dp表初始化: 特殊位置初始化&#…

Vue学习(五)生命周期、组件

生命周期 生命周期,又名生命周期回调函数、生命周期函数、生命周期钩子。 生命周期是Vue在关键时刻帮我们调用的一些特殊名称的函数。 生命周期函数的名字不可更改,但是函数的具体内容是程序员根据需求写的。 生命周期中的this指向的是vm或者组件实例…

NFTScan | 09.16~09.23 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期:2024.09.16~ 2024.09.22 NFT Hot News 01/ ​DeGods 推出代币 DEGOD,用户可通过 DeGods、y00ts 或 DUST 进行转换 9 月 16 日,Solana NFT 项目 DeGods 推出代币…

综合题第二题(路由器的配置)

题目 如何计算子网掩码 我们可以观察到上图的IP地址后面有“/26”、“30”。我们都知道子网掩码是由多个连续“1”和多个连续“0”组成的,“、26”表示子网掩码的二进制表达中有26个1。 例如:156.95.9.128/26 1111 1111.1111 1111.1111 1111.1100 0000…

idea插件开发系列1-环境搭建

前言 还记着10多年前有幸接触了eclipse插件开发,10多年后的今天有开发了idea的插件,真是一个轮回! 为什么要学习idea插件开发呢? 目前公司使用自己的MVC框架,没有相应的idea插件支持(如类似mybatis插件可…

基于51单片机智能家居监控系统设计

文章目录 前言资料获取设计介绍功能介绍设计程序具体实现截图设计获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对…