pytorch入门第一天

今天作为入门pytorch的第一天。打算记录每天学习pytorch的一些理解和笔记,以用来后面回顾。当然如果能帮到和我一样的初学者,那也是不胜荣幸。作为一名初学者,难免有些地方会现错误,欢迎各位大佬指出

预备知识

这里主要介绍pytorch的矩阵一些相关知识。矩阵总所周知是神经网络里重要内容,信号传递等都需要用到矩阵的一些知识。
这里的矩阵和numpy库中基本相似。使用基本运算符+-*/和另一个矩阵相乘都是对应元素进行运算。如果需要矩阵间的乘法(主要使用的运算)这需要使用方法a.mm(b)这里就是矩阵a和矩阵b使用矩阵乘法

torch和numpy里矩阵的一些区别

首先在numpy里矩阵一般都是直接作为数字计算,不会纠结变量类型,但是在torch中有矩阵元素类型。如果两个矩阵类型不相同进行运算操作(例如矩阵乘法)可能会导致报错。在初始化时可以直接定义类型

import torch
a=torch.tensor([1,2],dtype=float)#定义时声明类型为float

其次在torch中tensor在较高版本的torch中和自动微风变量合并了。如果需要声明此变量是自动微分变量(自动微分变量通俗理解就是可以自动求导,方便更新参数),需要在定义时声明requires_grad参数为True

a=torch.tensor([1,2],requires_grad=True,dtype=float)

自动微分变量可以用来更新神经网络权重等。例如以下代码

x = torch.linspace(0, 100,100).type(torch.FloatTensor)
rand =torch.randn(100)* 10
y = x + rand
x_train = x[: -10]
x_test = x[-10 :]
y_train = y[: -10]
y_test = y[-10 :]
learning_rate = 0.0001
for i in range(1000):# 计算在当前a、b条件下的模型预测值predictions = a.expand_as(x_train) * x_train +b.expand_as(x_train)loss = torch.mean((predictions - y_train) ** 2) #损失loss.backward() # 对损失函数进行梯度反传a.data.add_(- learning_rate * a.grad.data)   b.data.add_(- learning_rate * b.grad.data)  a.grad.data.zero_() # 清空a的梯度数值   b.grad.data.zero_() # 清空b的梯度数值

上述代码可以实现对一个一元函数更新。
这里另一个需要注意的点时一个变量被声明为自动微分变量后将损失传递后会有梯度信息,这个信息如果再次更新是通过相加更新的,也就是说如果用完梯度信息后如果不对梯度进行清空会导致梯度累加,影响模型的训练

激活函数

目前我所学的激活函数有三种,分别是:

  • sigmoid()函数,也就是logist函数,图像是
    在这里插入图片描述
  • softmax()函数,此函数就是使得结果相加等于1。目的是为了使结果为1。通常用于分类问题,使得所有输出节点值相加等于1.
  • relu()函数,这也是通常用于分类问题。图像特点是
  • 在这里插入图片描述

上述三个函数各有特点,目前学的就是在隐藏层用sigmoid激活函数,在输出层使用下面两个函数

编码处理

这里的编码处理是指神经网络输出结果的编码。对于问题通过有两种类型

  • 对数字大小不敏感,数字只是作为一个结果或者现象的表示。例如天气,1代表天气,2代表下雨。此时大小无意义
  • 对数字大小敏感,数字大小是结果的。例如重量

此时对这两种问题有两种不同措施:

  • 对于第一种问题,通常采用一种名为独热编码的方式。就是将输出层设置多个节点,一个节点代表一个类型(例如表示天气,一个节点表示晴天一个表示雨天)结果有几个类型就有几个输出节点。输出节点中值最大的就是最终答案。

  • 对于第二种问题,无需多少就是常规的方法,一个输出。但是这里通常需要使用归一化,这样可以加快训练速度。

torch自带的容器

torch自带神经网络容器(我也不知道是不是叫容器)。使用该容器可以快速构建一个神经网络。

import torch.nn as nn
model = nn.Sequential(   nn.Linear(len(diction), 10),nn.ReLU(),    nn.Linear(10, 2),  nn.LogSoftmax(dim=1),)

Linear(a,b)函数是创建一个线性层,输入a个节点,输出节点数是b
这里有四个参数。分别是输入层到达隐藏层的权重、隐藏层的激活函数、隐藏层到达输出层的权重、输出层的激活函数。
使用该网络时直接将输入传入就会返回一个输出结果

output=model(input)

数据集的划分

一般的一个数据集通常划分为三个部分。分别是训练集、校验集、测试集。
其中训练集用来训练。
校验集用来验证是否出现过拟合等现象,这样可以及时调整超参数(学习率等)。如果出现过拟合现象通常是校验集的损失曲线上升等。
验证集用来验证最终训练结果的正确率。
通常上述三个集合比例是8:1:1。
很明显只要训练集的参数用来训练调整参数,校验集和验证集都不能用来训练调整参数,否则就失去了意义。

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

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

相关文章

【数据结构】堆(创建,调整,插入,删除,运用)

目录 堆的概念: 堆的性质: 堆的存储方式: 堆的创建 : 堆的调整: 向下调整: 向上调整: 堆的创建: 建堆的时间复杂度: 向下调整: 向上调整&#xff…

2023年06月CCF-GESP编程能力等级认证C++编程二级真题解析

一、单选题(每题2分,共30分) 第1题 高级语言编写的程序需要经过以下()操作,可以生成在计算机上运行的可执行代码。 A. 编辑 B. 保存 C. 调试 D. 编译 答案:D 第2题 能够实现下面流程图功能的伪代码是( )。 A. if 条件判断 then 语句块 B. if 条件判断 then 什么…

vue项目打包部署到flask等后端服务里面,实现前后端不分离部署,解决空白页面和刷新页面not fount问题

1. 编译模式一定要设置为esnext,否则会报错: Strict MIME type checking is enforced for module scripts per HTML spec.Expected a JavaScript module script but the server responded with a MIME type of "text/plain". 具体解释可以看vi…

Leetcode 第 382 场周赛题解

Leetcode 第 382 场周赛题解 Leetcode 第 382 场周赛题解题目1:3019. 按键变更的次数思路代码复杂度分析 题目2:3020. 子集中元素的最大数量思路代码复杂度分析 题目3:3021. Alice 和 Bob 玩鲜花游戏思路代码复杂度分析 题目4:302…

停车场|基于Springboot的停车场管理系统设计与实现(源码+数据库+文档)

停车场管理系统目录 目录 基于Springboot的停车场管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员功能实现 (1)车位管理 (2)车位预订管理 (3)公告管理 (4&#…

Vulnhub-Empire靶机-详细打靶流程

渗透思路 1.确认靶机IP地址2.端口服务扫描3.敏感目录扫描4.ffuf命令在这个目录下,继续使用ffuf工具扫描 5.ssh私钥爆破1.将私钥写进sh.txt中2.将私钥转换为可以被john爆破的形式3.通过John爆破 6.ssh私钥登陆7.icex64提权8.arsene提权 1.确认靶机IP地址 ┌──(roo…

浏览器F12调试

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

Tomcat之虚拟主机

1.创建存放网页的目录 mkdir -p /web/{a,b} 2.添加jsp文件 vi /web/a/index.jsp <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <html> <head><title>JSP a page</title> </head> …

PAT-Apat甲级题1009(python和c++实现)

PTA | 1009 Product of Polynomials 1009 Product of Polynomials 作者 CHEN, Yue 单位 浙江大学 This time, you are supposed to find AB where A and B are two polynomials. Input Specification: Each input file contains one test case. Each case occupies 2 lin…

Matplotlib绘制炫酷散点图:从二维到三维,再到散点图矩阵的完整指南与实战【第58篇—python:Matplotlib绘制炫酷散点图】

文章目录 Matplotlib绘制炫酷散点图&#xff1a;二维、三维和散点图矩阵的参数说明与实战引言二维散点图三维散点图散点图矩阵二维散点图进阶&#xff1a;辅助线、注释和子图三维散点图进阶&#xff1a;动画效果和交互性散点图矩阵进阶&#xff1a;调整样式和添加密度图总结与展…

stable_diffusion提示词编写笔记(1)

stable_diffusion提示词编写笔记(1) start 总结一下AI绘画学到的知识。 一.提示词分两种&#xff1a; 1.正向提示词&#xff1b; 2.反向提示词&#xff1b; 一个对应你希望图形包含的内容提示词&#xff0c;一个对应你不希望图形出现的内容提示词。 二.如何书写提示词 1.内…

记一次VulnStack渗透

信息收集 netdiscover的主机发现部分不再详解&#xff0c;通过访问端口得知20001-2003端口都为web端口&#xff0c;所以优先考虑从此方向下手 外网渗透 GetShell Struct漏洞 访问2001端口后&#xff0c;插件Wappalyzer爬取得知这是一个基于Struct的web站点&#xff0c;直接…

gtkmm4 应用程序使用 CSS 样式

文章目录 前言css选择器css文件示例源代码效果 前言 程序样式和代码逻辑分离开 使代码逻辑更可观 css选择器 Cambalache提供了两种css-classes 相当于css里的类名:class“类名”css-name 相当于css里的标签名:spin div p 啥的 如上我设置了这个按钮控件的类名为testButton 标…

【Java】万万没想到,又被问ThreadLocal了

我待ThreadLocal如初恋&#xff0c;ThreadLocal虐我千百遍。但这一次&#xff0c;要彻底搞懂ThreadLocal 回顾一下面试名场面&#xff1a; 面试官&#xff1a;Handler如何做到与线程绑定的&#xff1f; 我&#xff1a;每个Handler只有一个相关联的Looper&#xff0c;线程绑定…

如何开始深度学习,从实践开始

将“如何开始深度学习”这个问题喂给ChatGPT和文心一言&#xff0c;会给出很有专业水准的答案&#xff0c;比如&#xff1a; 要开始深度学习&#xff0c;你可以遵循以下步骤&#xff1a; 学习Python编程语言的基础知识&#xff0c;因为它在深度学习框架中经常被使用。 熟悉线性…

自然人如何代开发票

1&#xff1a;登录国家税务总局深圳市电子税务局 地址&#xff1a;国家税务总局深圳市电子税务局 2&#xff1a;个人所得税APP 扫描登录 或 身份证登录 3&#xff1a;选择 自然人代开增值税电子普通发票 4&#xff1a;申请代开 5&#xff1a;人脸识别 6&#xff1a;画框的…

【每日一题】LeetCode——链表的中间结点

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有…

【Python4Delphi】学习笔记(一):介绍篇

一、前言&#xff1a; 1. python语言简介&#xff1a; 众所周知&#xff0c;python是目前非常流行的编程语言之一&#xff0c;自20世纪90年代初Python语言诞生至今&#xff0c;它已被逐渐广泛应用于系统管理任务的处理和Web编程。 由于Python语言的简洁性、易读性以及可扩展性…

苏宁易购移动端首页(rem布局)

技术选型 方案∶采取单独制作移动页面方案技术:布局采取rem适配布局( less rem &#xff0b;媒体查询)设计图:设计图采用750px设计尺寸 设置视口标签以及引入初始化样式 <meta name"viewport" content"widthdevice-width, initial-scale1.0, user-scalable…

Qt网络编程-写一个简单的网络调试助手

环境 Windows&#xff1a;Qt5.15.2&#xff08;VS2022&#xff09; Linux&#xff1a;Qt5.12.12&#xff08;gcc) 源代码 TCP服务器 头文件&#xff1a; #ifndef TCPSERVERWIDGET_H #define TCPSERVERWIDGET_H #include <QWidget> namespace Ui { class TCPServerW…