P16 激活函数与Loss 的梯度

news2024/9/24 1:22:49

参考:

https://www.ngui.cc/el/507608.html?action=onClick

这里面简单回顾一下PyTorch 里面的两个常用的梯度自动计算的API

autoGrad 和 Backward, 最后结合 softmax 简单介绍一下一下应用场景。

目录:

1 autoGrad

2 Backward

3 softmax


一 autoGrad

输入

x

输出

损失函数

参数更新

# -*- coding: utf-8 -*-
"""
Created on Mon Feb 13 21:28:26 2023

@author: cxf
"""

import torch
import torch.nn.functional as F

def grad():
    
    x = torch.tensor([[1.0,2.0]]).view(2,1)
    w = torch.full([2,1], 1.0,requires_grad= True)
    target = torch.ones((1,1))
    out = torch.matmul(w.T, x)
    print(out)
    mse = F.mse_loss(out, target)
    
    print("\n mse",mse)

    grad_w = torch.autograd.grad(mse,[w])    
    print(grad_w)

if __name__ == "__main__":
    
    grad()


二 Backward

求梯度另一种方法,可以通过backward

在创建动态图后,直接调用backward,更加方便

import torch
import torch.nn.functional as F

def grad():
    
    x = torch.tensor([[1.0,2.0]]).view(2,1)
    w = torch.full([2,1], 1.0,requires_grad= True)
    target = torch.ones((1,1))
    out = torch.matmul(w.T, x)
    print(out)
    mse = F.mse_loss(out, target)
    
    print("\n mse",mse)

    mse.backward()   
    print(w.grad)

if __name__ == "__main__":
    
    grad()

三 softmax

多分类模型常用的激活函数

这种模型通常用交叉熵做损失函数

因为标签中只有一个为1,其它都为0,假设为

则:

(j=i)

则写成向量形式为

import torch
import torch.nn.functional as F
from torch import nn


#自己实现该梯度计算
def calcGrad(a,target):
    
    grad =a -target
    print("\n 直接计算",grad)
    # 直接计算 tensor([[ 0.0900, -0.7553,  0.6652]], grad_fn=<SubBackward0>)

#调用API 方式实现
def grad():
    CEL =  nn.CrossEntropyLoss()
    z = torch.tensor([[1.0,2.0,3.0]],requires_grad=True)
    a = F.softmax(z,dim=1)
    
    print("\n 神经元输出",a)
    target = torch.tensor([[0.0,1.0,0.0]])
    
    loss =CEL(z,target)
    loss.backward()
   
 
    print("\n API 计算",z.grad)
    # API 计算 tensor([[ 0.0900, -0.7553,  0.6652]])
    calcGrad(a,target)

if __name__ == "__main__":
    
    grad()

这里面要注意nn.CrossEntropyLoss

是相当于对z 先做softmax,得到a, 然后再做交叉熵

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

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

相关文章

buu [UTCTF2020]basic-crypto 1

题目描述&#xff1a; 01010101 01101000 00101101 01101111 01101000 00101100 00100000 01101100 01101111 01101111 01101011 01110011 00100000 01101100 01101001 01101011 01100101 00100000 01110111 01100101 00100000 01101000 01100001 01110110 01100101 00100000 0…

【Kubernetes】【七】命令式对象配置和声明式对象配置

命令式对象配置 命令式对象配置就是使用命令配合配置文件一起来操作kubernetes资源。 1&#xff09; 创建一个nginxpod.yaml&#xff0c;内容如下&#xff1a; apiVersion: v1 kind: Namespace metadata:name: dev---apiVersion: v1 kind: Pod metadata:name: nginxpodnames…

调用Windows安全中心实现登录验证

文章目录运行效果用到的运行库代码实现使用日志Win10 Flat风格XP风格总结运行效果 输入用户名和密码点击确定后获取到的信息&#xff1a; 用到的运行库 NuGet搜索安装即可 Kang.ExtendMethodKang.ExtendMethod.Log https://gitee.com/haozekang/kang Vanara.PInvoke https:…

安全算法 - 国密算法

国密即国家密码局认定的国产密码算法。主要有SM1&#xff0c;SM2&#xff0c;SM3&#xff0c;SM4&#xff0c;SM7, SM9。国密算法分类国家标准官方网站如下&#xff1a;http://openstd.samr.gov.cn/bzgk/gb/SM1 为对称加密。其加密强度与AES相当。该算法不公开&#xff0c;调用…

Nacos——配置管理基础应用

目录 一、快速入门 1.1 发布配置 1.2 nacos client远程获取配置 1.2.1 导入坐标 1.2.2 程序代码 二、Nacos配置管理基础应用 2.1 Nacos配置管理模型 2.1.2 配置集(Data Id) 2.1.3 配置项 2.1.4 配置分组 (Group) 2.1.5 命名空间(Namespace) 2.1.6 最佳实践&#xff0…

Worok:专门针对亚洲实体的网络间谍组织

ESET 的研究人员发现了一个全新的攻击组织 Worok&#xff0c;该组织自动 2020 年就一直处于活跃状态。Worok 使用的工具集包括一个 C 编写的加载程序 CLRLoad、一个 PowerShell 编写的后门 PowHeartBeat 和一个 C# 编写的加载程序 PNGLoad&#xff0c;攻击者使用隐写术来提取隐…

PPT与Inkscape自定义色板

PPT与Inkscape自定义色板简述 本文主要分享了PPT与Inkscape中自定义色板功能&#xff0c;以满足个性化配色需求。此外&#xff0c;文末分享了常见的配色网站和图片网站&#xff0c;前者可以满足配色需求&#xff0c;后者可以满足配图需求。 PPT自定义色板 在常见的办公三件套中…

pycharm远程连接服务器,并单步调试服务器上的代码

每天都有不同的朋友来Push我 那如果比较健忘的话&#xff0c;为啥不问一下chatGPT呢 问题的缘由在我想在本地单步调试代码。。。 我的代码完全在云端服务器的&#xff0c;还有数据集都是&#xff0c;但实际上本地代码可以通过pycharm给他传上去。 但是在后面配置的时候需要两…

高密度部署,基于动态库的尝试,rust动态调库

目录前言faas特点方案思考实践制作动态库调用动态库尾语前言 最近在搞faas平台&#xff0c;也试了各大云厂商的产品&#xff0c;效果都不是很理想。和我心目中的faas想去甚远。  和小伙伴们吹完牛逼&#xff0c;心有所感&#xff0c;写下这篇文章&#xff0c;时间跨度较长&…

「AI人工智能」Node.js如何接入OpenAI开发

文章目录前言一、创建OpenAI账号二、安装axios 库三、导入 axios 库四、调用 OpenAI API五、测试 OpenAI API前言 本文主要介绍如何将 Node.js 应用程序与 OpenAI 集成&#xff0c;可以使用 OpenAI API。 一、创建OpenAI账号 创建一个 OpenAI 帐户并注册 API 密钥。你可以在 …

Linux系统一键检测和加固脚本

主要是为了Linux系统的安全&#xff0c;通过脚本对Linux系统进行一键检测和一键加固。 Check_Script #包含2个文件 CentOS_Check_Script.sh README.txt 操作说明 #执行CentOS-Check_Script.sh脚本文件进行检查,命令格式如下 sudo sh CentOS_Check_Script.sh | tee check_da…

Spring Boot 2.x系列【28】应用篇之JAVA执行服务器操作命令

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Spring Boot版本2.7.0 文章目录前言本地服务器远程服务器前言 在某些实际开发场景中&#xff0c;我们需要调用JAVA程序去执行一些服务器操作命令&#xff0c;比如&#xff1a; 获取服务器的CPU…

牛逼的不停服定位线上问题-arthas

​ Hello&#xff0c;大家好我是你们可爱的小花。 前言 你是不是为了生产环境问题&#xff0c;无法定位、无法中断、无法解决 项目无故异常&#xff0c;日志无报错、报错不够明确 测试环境无法复现、生产环境问题偶发 但重启项目后问题消失&#xff0c;无法给领导一个答复而苦…

ChatGPT冷观察:没有大模型的土壤,开不出ChatBot的花

文|智能相对论作者|叶远风谁在跟风&#xff0c;谁又有真本事能做出中国版的对标产品来&#xff1f;这恐怕是ChatGPT这股热潮以来&#xff0c;关心中国AI发展的业界人士最想问的问题。或者说&#xff0c;在中国人工智能不落后于全世界的当下&#xff0c;业界也在普遍渴望一个真正…

AWS Directory Service

Hello大家好&#xff0c;我们接下来讨论AWS Directory Service&#xff0c;AWS目录服务的内容。 什么是微软活动目录&#xff08;AD&#xff09; 在认证考试中有很多的考点是关于微软AD部分的&#xff0c;也就是微软活动目录以及AWS活动目录服务—AWS Directory Service的内容…

PowerShell Install Mysql 8

MySQL介绍 MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 mysql download Mysql Serverdownload创建一键安装Mysql 8自动化脚本 Expand-Archive #解压文件Start-P…

【我有一个梦想:帮你实现你的梦想】

很多人都曾有过这样的经历&#xff0c;某天突然对某个东西产生了兴趣&#xff0c;于是兴致勃勃的开始在网上各种搜&#xff0c;各种查&#xff0c;去各大论坛到处看到处问&#xff0c;在网上搜集很多免费的电子书&#xff0c;看了很多视频&#xff0c;最后忙活了一阵子&#xf…

若依框架如何新增自定义主题风格

若依框架新增主题风格1.实现结果2.实现步骤2.1Settings目录下2.2 variables.scss2.3 sidebar.scss2.4 Logo.vue2.5 Siderbar目录下的index.vue1.实现结果 2.实现步骤 需要改动的文件目录&#xff1a; 2.1Settings目录下 <div class"setting-drawer-block-checbox-it…

DBeaver:开源、跨平台、强大的数据库管理工具

文章目录一、简介1.DBeaver 是什么2.DBeaver 的功能3.DBeaver 的优点二、安装与配置1.系统要求2.下载与安装3.连接数据库三、总结一、简介 1.DBeaver 是什么 DBeaver 是一个流行的开源数据库客户端&#xff0c;它可以用于连接和管理多种不同类型的数据库系统&#xff0c;包括…

什么是STAR原则?

文章目录&#x1f4cb;前言&#x1f525;省流版&#x1f3af;什么是STAR原则&#x1f3af;进行过程&#x1f4cb;前言 对于大部分还在学习阶段的学生们来说&#xff0c;可能并不了解这个原则的含义&#xff0c;这里的star并不是指英文单词星星。这个原则我也是前段时间才认识到…