损失函数和反向传播

1. 损失函数的基础

import torch
from torch.nn import L1Loss
from torch import nn

inputs = torch.tensor([1, 2, 3], dtype=torch.float32)
targets = torch.tensor([1, 2, 5], dtype=torch.float32)

inputs = torch.reshape(inputs, (1, 1, 1, 3))
targets = torch.reshape(targets, (1, 1, 1, 3))

loss_l1 = L1Loss(reduction='sum') #默认为mean
result_l1  = loss_l1(inputs,targets)

loos_mse = nn.MSELoss()
result_mes = loos_mse(inputs, targets)

print(result_l1, result_mes)

x = torch.tensor([0.1,0.2,0.3])
y = torch.tensor([1])
x = torch.reshape(x,(1,3)) #(N,C)
loss_cross = nn.CrossEntropyLoss()  #注意输入输出的维度 多看官网
result_cross = loss_cross(x,y)
print(result_cross)

2. 损失函数的运用

import torchvision
from torch import nn
from torch.nn import Sequential, Conv2d, MaxPool2d, Flatten, Linear
from torch.utils.data import DataLoader

dataset = torchvision.datasets.CIFAR10('./dataset',train=False, transform=torchvision.transforms.ToTensor())
dataloader = DataLoader(dataset, batch_size=1)


class Tudui(nn.Module):
    def __init__(self):
        super().__init__()
        self.model1 = Sequential(
            Conv2d(3, 32, 5, padding=2),
            MaxPool2d(kernel_size=2),
            Conv2d(32, 32, 5, padding=2),
            MaxPool2d(2),
            Conv2d(32, 64, 5, padding=2),
            MaxPool2d(2),
            Flatten(),
            Linear(1024, 64),
            Linear(64, 10)
        )

    def forward(self, x):
        x = self.model1(x)
        return x

loss = nn.CrossEntropyLoss()

tudui = Tudui()

for data in dataloader:
    imgs, targets = data
    outputs = tudui(imgs)
    result_loss = loss(outputs, targets)
    print(result_loss)

    result_loss.backward() #梯度
    print('ok')

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

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

相关文章

[已解决]安装CUDA失败报错(附万能解决办法)

[已解决]安装CUDA失败报错(附万能解决办法) (Tips:赶时间直接看万能法2) 经过长时间的尝试和研究,我终于解决了安装CUDA失败报错的问题。在这里,我将记录下我遇到的问题以及解决办法,希望对其他小白们有所帮…

关于PolarDB粗浅认识

PolarDB简介 目前(20240314),PolarDB有两个版本: PolarDB-PG PolarDB PostgreSQL 版(PolarDB for PostgreSQL,简称“PolarDB-PG”)是阿里云自主研发的云原生关系型数据库产品,100%…

el-dialog弹框遮罩层问题

先看一下出现的bug,点击按钮出现弹框的时候,遮罩层出现在弹框上层,不知道是那个同事写的全局样式影响的,这个时候我们需要在el-dialog标签上添加一个属性就行 :modal-append-to-body“false” 下图是出现的问题,遮罩层…

什么是 HTTPS?它是如何解决安全性问题的?

什么是 HTTPS? HTTPS(HyperText Transfer Protocol Secure)是一种安全的通信协议,用于在计算机网络上安全地传输超文本(如网页、图像、视频等)和其他数据。它是 HTTP 协议的安全版本,通过使用加…

【微服务学习笔记(一)】Nacos、Feign、Gateway基础使用

【微服务学习笔记(一)】Nacos、Feign、Gateway基础使用 总览Nacos安装配置Nacos注册中心服务多级存储模型负载均衡规则环境隔离 配置管理配置拉取配置热更新多服务共享配置 Feign远程调用配置性能优化Fegin使用 统一网关Gateway搭建网关路由断言工厂&…

扫雷小游戏制作教程:用HTML5和JavaScript打造经典游戏

🌟 前言 欢迎来到我的技术小宇宙!🌌 这里不仅是我记录技术点滴的后花园,也是我分享学习心得和项目经验的乐园。📚 无论你是技术小白还是资深大牛,这里总有一些内容能触动你的好奇心。🔍 &#x…

ASP.NET-Server.UrlEncode

目录 背景: Server.UrlEncode作用: 1.URL 编码: 2.避免冲突: 3.安全性: 4.规范化: 实例说明: 不使用Server.UrlEncode 使用Server.UrlEncode 总结: 背景: Server.UrlEncode方法在ASP.NET中主要功能是对URL中的参数进行编…

使用点链云管家创建瑜伽约课小程序

点链云管家 点链云管家是由上海点链科技开发的门店管理系统,为线下门店商家提供一站式门店运营服务平台解决方案,适用于瑜伽健身、美业、新零售会员制电商、母婴店、宠物店、按摩养生、服装、美容、美甲、汽车服务、商超零售、餐饮、KTV娱乐、干洗等18个…

CodeFuse代码优化实战:Java日期格式化时如何正确表示年份?

代码优化,是 CodeFuse 插件推出的功能之一,它可以对选定代码段进行分析理解,提出优化和改进建议。还能直接基于改进建议形成代码补丁,帮助开发者写出更好的代码。 安装CodeFuse插件后,选中代码右键即可使用代码优化功能…

技术帖 | 飞凌嵌入式AM62x核心板SPI的详解与应用

SPI(Serial Peripheral Interface)通信总线以其高速、全双工、同步的特性而被广泛应用,它只需要四根线就能实现数据传输,有效地节约了芯片管脚的数量,同时为PCB布局带来了空间上的优化和便捷。正因为它简单易用的特点&…

csp模拟题(201604-2,俄罗斯方块模拟下坠)

题目 问题描述 俄罗斯方块是俄罗斯人阿列克谢帕基特诺夫发明的一款休闲游戏。   游戏在一个15行10列的方格图上进行,方格图上的每一个格子可能已经放置了方块,或者没有放置方块。每一轮,都会有一个新的由4个小方块组成的板块从方格图的上方…

NCV7356D1R2G接口集成芯片中文资料PDF数据手册参数引脚图规格书价格图片

产品概述: NCV7356 是一款用于单线数据链路的物理层器件,能够使用多种具碰撞分解的载波感测多重存取 (CSMA/CR) 协议运行,如博世控制器区域网络 (CAN) 2.0 版。此串行数据链路网络适用于不需要高速数据的应用,低速数据可在物理介…

基于RK3588+Codesys+Xenomai的ARM+LINUX实时硬件平台的软PLC解决方案

产品概述 公司推出基于瑞芯微RK3588架构的AI边缘计算主板,RK3588是新一代国产旗舰高性能64位八核处理器,采用8nm工艺,具有高算力、低功耗、超强多媒体、丰富数据接口等特点。搭载四核A76四核A55的八核CPU和ARM G610MP4 GPU,内置6…

css超出部分显示省略号

目录 前言 一、CSS单行实现 二、CSS多行实现(CSS3出的,兼容性需要注意) 三、微信小程序超过2行出现省略号实现 四、JavaScript脚本实现 前言 CSS文本溢出就显示省略号,就是在样式中指定了盒子的宽度与高度,有可能出现某些内…

STM32基础--中断应用

本文章里面假设中断就是异常,不做区分。 异常类型 F103 在内核水平上搭载了一个异常响应系统,支持为数众多的系统异常和外部中断。其中系统异常有 8 个(如果把 Reset 和 HardFault 也算上的话就是 10 个),外部中断有…

百度paddleocr GPU版部署

显卡:NVIDIA GeForce RTX 4070,Nvidia驱动程序版本:537.13 Nvidia驱动程序能支持的最高cuda版本:12.2.138 Python:python3.10.11。试过python3.12,安装paddleocr失败,找不到相关模块。 飞桨版本…

Java优先级队列(堆)

🐵本篇文章将对优先级队列(堆)的相关知识进行讲解 一、优先级队列 队列是一种“先入先出”的数据结构,但有时操作的数据带有优先级,需要优先处理,这时普通的队列就不能满足需求。比如:在排队取…

《JAVA与模式》之抽象工厂模式

系列文章目录 文章目录 系列文章目录前言一、使用简单工厂模式的解决方案二、引进抽象工厂模式三、抽象工厂模式结构四、抽象工厂模式的优缺点前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看…

Github上哪些好用的安全工具1

专注于web漏洞挖掘、内网渗透、免杀和代码审计,感谢各位师傅的关注!网安之路漫长,与君共勉! URLFinder 一款快速提取网页信息的工具。该项目可以快速爬取网页上的 URL 地址、JS 文件里的 API 接口等信息,支持批量抓取…

推荐算法中经典排序算法GBDT+LR

文章目录 逻辑回归模型逻辑回归对于特征处理的优势逻辑回归处理特征的步骤 GBDT算法GBDTLR算法GBDT LR简单代码实现 逻辑回归模型 逻辑回归(LR,Logistic Regression)是一种传统机器学习分类模型,也是一种比较重要的非线性回归模型&#xff0…