【深度学习基础】Pytorch框架CV开发(1)基础铺垫

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨
📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】
📢:文章若有幸对你有帮助,可点赞 👍 收藏 ⭐不迷路🙉
📢:内容若有错误,敬请留言 📝指正!原创文,转载请注明出处

文章目录

  • 简单介绍下Pytorch
  • Pytorch基础
    • 张量
    • 创建张量tensor
    • 自动梯度
    • 线性回归
    • 逻辑回归
    • 人工神经网络
    • 感知机
    • 反向传播
  • Pytorch中的基础数据集

简单介绍下Pytorch

深度学习框架的作用:通过深度学习框架搭建神经网络;

什么是Pytorch?:Pytorch是Facebook的AI研究团队开发,以python优先的深度学习框架。

tensor的作用:tensor是Pytorch中最基本的构建,能够像Numpy一样进行矩阵运算,同时支持GPU加速。亦可以与Numpy相互转换。

tensor学习的重点:重点是tensor的操作和数学运算,难点是variable和自动求导。

tourch包括两种操作
1.数学运算,这个跟python中的数学运算一致。
2.高级操作

导入Pytorch的方法:import torch

Pytorch基础

张量

什么是张量:Pytorch中任何数据都是张量,分为一维和多维张量,其中三维张量就是图像。

在这里插入图片描述

创建张量tensor

创建空张量:a=torch.empty(2,3)或是a=torch.zeros(2,3)
创建随机张量:a=torch.random(3,3) 创建自定义张量: a=torch.tensor([1,2,3,2,4,4])#一维
a=torch.tensor([[1,2,3],[2,4,4]])#二维

张量算术运算:规则跟数组一样,相±,形状必须一样;*/要求参考数组的表达。 例如: C=a.add(b)
xy=torch.matmul(x,y)

张量形状变换:使用view函数,张量名2=张量名1.view(新形状) 查看张量形状:张量名.size() 张量与数组之间的数据转换:
张量转成数组:数组名=张量名.Numpy() 数组转成张量:张量名=torch.from_Numpy(数组名)

张量可以理解为矩阵。 张量里面的review跟数组内的reshape一样。 matmul翻译为矩阵相乘

自动梯度

什么是自动梯度:就是自动求偏导数,计算梯度就是计算偏导数。

在这里插入图片描述

如何计算梯度:使用函数backward()
例如:
在这里插入图片描述
输出结果的作用:帮助调整输入,也就是深度学习的目的。最终得到一个正确的预测模型。
计算梯度就是反向计算,也就是求导。

线性回归

什么是线性回归?线性规划根据输入的数据拟合曲线。通过一堆点生成一条直线,这条直线符合y=kx+b这样的一元一次函数。采用的方法(拟合方式)是最小二乘法,也就是每个点的纵坐标(真实值)与线上的预测值之间的误差和最小。
在这里插入图片描述

Pytorch中如何求线性回归?使用函数:torch.nn.liner(input,output)
其中的输入是x,输出是y。
如何计算真实值与预测值之间的误差?
公式:
在这里插入图片描述
使用的函数:torch.nn.MSELoss

更新参数(k和d)的方法:参数=参数-学习率*参数梯度
计算损失值不断循环往复,直到这个损失值到最小值才停止更新。

上述不断更新参数的过程在Pytorch中如何实现?
使用下面的函数即可。使用SGD优化器不断拟合参数
在这里插入图片描述
如何构建正确的线性回归模型?
1.构建初始模型
2.计算损失
3.更新参数(模型训练)
数据+模型+损失+优化

通过一堆点生成一条直线,这个过程叫做拟合。
线性回归的过程就是找到合适的k和b,使得真实值与预测值的差值(损失值)最小。

逻辑回归

什么是逻辑回归?在线性组合的基础上加上非线性变换。

在这里插入图片描述
在这里插入图片描述
逻辑回归在理解了线性回归的基础上,理解起来比较简单,其实是对线性的情况进行复杂化,因为实际情况中的很多关系不是线性的。

人工神经网络

人工神经网络的出现:线性回归是预先知道y-x之间的关系的,而实际上很多时候是不知道两者之间的关系,就是说y-x很可能不是线性的,甚至数据量是否庞大,这个时候人工神经网络出现了,可以帮助构建y-x之间的模型关系。人工神经网络本意是为了模仿人的大脑神经网络,希望做到像人脑一样思考,因此提出了人工神经网络这个概念。

人工神经网络发展历史
在这里插入图片描述

感知机

感知机的出现:线性回归都是单个变量之间的关系,为应对更为复杂的实际问题,出现了感知机这一概念,感知机的输入有多个x,输出y由多个线性回归组合而成,是一个多元一次函数。所求出的y为和,通过激活函数的操作,判断是否将其激活。这个就是比逻辑回归更加复杂点,多增加了输入量。
感知机也是在模仿神经网络,其中的结点就是神经元。
在这里插入图片描述

反向传播

反向传播算法的两个阶段:前向传播阶段和反向传播阶段。
前向传播的作用:从输入层到隐藏层到输出层这一个过程,输出预测值,计算预测值跟标签值之间的差值。
反向传播的作用:差值从输出层反向传播给输入层,若差值过大就会重新计算参数,进行优化。优化后的参数再一次进行前向传播,如此往复循环,最终输出最小差值,停止参数更新。也说明预测值越来越接近真实值。
反向传播算法的分类:静态反向传播;循环反向传播。
在这里插入图片描述
反向传播的数学原理:自动梯度求导(遵循链式求导法则)
在这里插入图片描述
E是损失误差,net是输入值,o是输入值经过激活函数后的输出值。
E对wi求出的导数越大说明对E的贡献越大,可以通过减小w值来实现E的缩小,得到新的wi值,新的值重新进行训练,得到新的E值,通过判断E的大小考虑是否再进行上述的轮回,直至最小(也就是训练结束)。

反向传播举例:
在这里插入图片描述

反向传播的训练方法
1.随机/世故梯度下降:计算梯度基于单个样本,计算速度快,很容易收敛。 每个样本都要下降一次。
2.标准/批量梯度下降:计算基于整个数据集,计算速度慢,不容易收敛。 整个样本全部计算完后下降一次。
3.mini_batch梯度下降:而实际训练中都不采用上述两种方法,而采用小批量梯度下降,也就是batch_size的值,这个值要根据显卡的内存去设置。 优点是:收敛速度快,算法精度高。
在这里插入图片描述
线性组合加上非线性变换就是感知机。
总结:前向传播用于产生错误;反向传播用于更新参数

Pytorch中的基础数据集

Pytoch内置数据集:Pytorch内置需要经典的数据集,可以直接拿来使用。
在这里插入图片描述
数据集的读取和加载:dataset用于读取数据集;dataloader用于加载数据集。
在这里插入图片描述
dataset也就是封装好了许多经典的数据集,我们没必要去网上下载了,存储在torchvision这个模块里面。在Pytorch里直接使用dataloader就可以下载了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker的简单安装

安装环境 CentOS Linux release 8.1.1911 (Core)内核4.18.0-147.el8.x86_64Mini Installation 安装前的准备工作 切换国内源 由于centos源已经过期,所以切换为阿里云的yum源,第二个是docker的仓库 wget -O /etc/yum.repos.d/CentOS-Base.repo https:…

vue需求:实现签章/签字在页面上自由定位的功能(本质:元素在页面上的拖拽)

目录 第一章 效果展示 第二章 了解工具 2.1 draggable 2.1.1 了解draggable 2.1.2 draggable方法 2.1.3 利用例子理解方法 第三章 效果实现 3.1 实现思路 3.2 代码实现 3.2.1 涉及到的点 3.2.2 源代 第一章 效果展示 效果描述:通过点击左边栏的签名和…

C#,数值计算——积分方程与逆理论,构造n点等间隔求积的权重的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { /// <summary> /// 构造n点等间隔求积的权重 /// Constructs weights for the n-point equal-interval quadrature /// from O to(n-1)h of a function f(x) times an arbitrary /// (pos…

十年JAVA搬砖路——Linux搭建Ldap服务器。

1.安装命令 yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel2.启动ldap systemctl start slapd systemctl enable slapd3.修改密码 slappasswd Aa123456获得返回的密码加密密码串&#xff1a; {SSHA}DkSw0…

免费(daoban)gpt,同时去除广告

一. 内容简介 免费(daoban)gpt&#xff0c;同时去除广告&#xff0c;https://chat18.aichatos.xyz/&#xff0c;也可当gpt用&#xff0c;就是有点广告&#xff0c;大家也可以支持一下 二. 软件环境 2.1 Tampermonkey 三.主要流程 3.1 创建javascript脚本 点击添加新脚本 …

2023第二届全国大学生数据分析大赛A题思路

某电商平台用户行为分析与挖掘 背景&#xff1a;电商是当今用户最大的交易市场之一&#xff0c;电商行业也逐渐成熟&#xff0c; 所有市场中可售卖的商品全都在平台中存在&#xff0c;并且在网络和疫情的影 响下&#xff0c;在线上的消费行为满足全年龄段用户。 用户的交易行为…

2023.11.4 Idea 配置国内 Maven 源

目录 配置国内 Maven 源 重新下载 jar 包 配置国内 Maven 源 <mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf> …

为你整理了一份抖音小店的高分打造指南

抖音小店是一种在抖音平台上运营的电商店铺。通过打造一个高分店铺&#xff0c;可以吸引更多用户关注和购买&#xff0c;提升销售业绩。下面四川不若与众将介绍一些打造高分店铺的方法。 首先&#xff0c;店铺名称和简介要吸引眼球。店铺名称应该简洁明了&#xff0c;容易被记住…

curl(六)DNS解析、认证、代理

一 DNS解析 ① ip协议 使用ipv4 [-4] 还是ipv6 [-6] ② --resolve 场景&#xff1a; 在不修改系统配置文件 /etc/hosts 的情况下将单个请求临时固定到 ip 地址 1、使用 * 作为通配符,这样请求中调用的所有 Host 都 会转到你指定的 ip curl https://www.wzj.com --resolv…

王道p18 6.从有序顺序表中删除所有其值重复的元素,使表中所有元素的值均不同(c语言代码实现)

视频讲解在这里&#xff1a;&#x1f447; 顺序表p18 第6题wd数据结构课后代码题&#xff08;c语言代码实现&#xff09;_哔哩哔哩_bilibili 本题代码如下 void deleterepeat(struct sqlist* L) {if (L->length 0)printf("表空");int i 0;int k 0;for (i 1…

【软著写作】软著写作过程记录

文章目录 整体流程图&#xff1a;写在前面&#xff1a;一、准备材料1 准备材料2 申请盖章 二、软件登记1 注册账号2 填报软著 整体流程图&#xff1a; 写在前面&#xff1a; 这两天填报了一篇软著&#xff0c;正好将以前第一次填报时&#xff0c;踩的一些坑和过程记录了一下&am…

破解密码 LLM(代码LLM如何从 RNN 发展到 Transformer)

舒巴姆阿加瓦尔 一、说明 近年来&#xff0c;随着 Transformer 的引入&#xff0c;语言模型发生了显着的演变&#xff0c;它彻底改变了我们执行日常任务的方式&#xff0c;例如编写电子邮件、创建文档、搜索网络甚至编码方式。随着研究人员在代码智能任务中应用大型语言模型&am…

[每周一更]-(第70期):常用的GIT操作命令

1、增删文件 # 添加当前目录的所有文件到暂存区 $ git add .# 添加指定文件到暂存区 $ git add <file1> <file2> ...# 添加指定目录到暂存区&#xff0c;包括其子目录 $ git add <dir># 删除工作区文件&#xff0c;并且将这次删除放入暂存区 $ git rm [file…

Redis中的List类型

目录 List类型的命令 lpush lpushx rpush lrange lpop rpop lindex linsert llen lrem ltrim lset 阻塞命令 阻塞命令的使用场景 1.针对一个非空的列表进行操作 2.针对一个空的列表进行操作 3.针对多个key进行操作. 内部编码 lisi类型的应用场景 存储(班级…

SpringSecurity全家桶 (一) —— 简介

1. 概述 Spring Security 是一个框架&#xff0c;提供针对常见攻击的身份验证、授权和保护。 它为保护命令式和响应式应用程序提供了一流的支持&#xff0c;是保护基于 Spring 的应用程序的事实标准。 2. 了解 shiro&#xff1a; 在之前SSM框架盛行的时代&#xff0c;项目的…

C++入门讲解第一篇

大家好&#xff0c;我是Dark Fire&#xff0c;终于进入了C的学习&#xff0c;我知道面对我的将是什么&#xff0c;就算变成秃头佬&#xff0c;也要把C学好&#xff0c;今天是C入门第一篇&#xff0c;我会尽全力将知识以清晰易懂的方式表达出&#xff0c;希望我们一起加油&#…

奇元大模型通过备案 360自研两大模型均获批

11月4日&#xff0c;三六零(601360.SH&#xff0c;下称“360”)大模型“奇元大模型”通过备案落地。今年9月&#xff0c;“360智脑大模型”已获批面向公众开放。360公司也成为国内首家两个大模型均通过备案的科技企业。 从大模型定位和应用角度来看&#xff0c;奇元大模型具备…

Vert.x学习笔记-Vert.x的基本处理单元Verticle

Verticle介绍 Verticle是Vert.x的基本处理单元&#xff0c;Vert.x应用程序中存在着处理各种事件的处理单元&#xff0c;比如负责HTTP API响应请求的处理单元、负责数据库存取的处理单元、负责向第三方发送请求的处理单元。Verticle就是对这些功能单元的封装&#xff0c;Vertic…

UI设计感蓝色商务数据后台网站模板源码

蓝色商务数据后台网站模板是一款适合网站模板下载。提示&#xff1a;本模板调用到谷歌字体库&#xff0c;可能会出现页面打开比较缓慢。 演示下载 qnziyw点cn/wysc/qdmb/20852点html

自动驾驶行业观察之2023上海车展-----智驾供应链(3)

智驾解决方案商发展 华为&#xff1a;五项重磅技术更新&#xff0c;重点发布华为ADS 2.0和鸿蒙OS 3.0 1&#xff09;产品方案&#xff1a;五大解决方案都有了全面的升级&#xff0c;分别推出了ADS 2.0、鸿蒙OS 3.0、iDVP智能汽车数字平台、智能车云服务和华为车载光最新 产品…