首页 > 其他分享 >4-反向传播

4-反向传播

时间:2024-08-12 21:17:48浏览次数:10  
标签:tensor data 传播 反向 计算 梯度 grad


从这张图片,可以看出。不管我们有多少层,都可以化简成最简形式。我们添加的层就没有意义。
所以我们要对每一层的输出做非线性变换,增加模型的复杂程度,使它没法化简

反向传播的流程

pytorch的tensor数据结构


看到代码,要能把计算图构建出来,而不是简单的乘除运算


在上面这张图,w是tensor数据结构,x与w相乘前会自动转化为tensor数据结构。同时由于w需要计算梯度,所以y也需要计算梯度
每进行一次反向传播后,计算图就会释放(每次计算的计算图可能不会一样),下次计算再重新构建计算图

点击查看代码
import numpy as np
import matplotlib.pyplot as plt
import torch

w = torch.tensor([1.0])
w.requires_grad = True  # 需要进行梯度更新

x_data = [1.0, 2.0, 3.0]
y_data = [2.0, 4.0, 6.0]

def forward(x):
    return w * x # x会自己转化成tensor类型

def loss(x, y):
    y_pred = forward(x)
    return (y_pred - y) ** 2

for epoch in range(100):
    for x, y in zip(x_data, y_data):
        l = loss(x, y)
        l.backward()  # 反向传播,把梯度grad和值data存储到w这个tensor变量中
        w.data = w.data - 0.01 * w.grad.data  # 注意是对w.data进行更新,而不是w

        w.grad.data.zero_()  # 梯度清零

    print('epoch:', epoch, l.item(), w.data)

print(forward(4).item())


标签:tensor,data,传播,反向,计算,梯度,grad
From: https://www.cnblogs.com/morehair/p/18355749

相关文章

  • nginx配置web服务|反向代理|负载均衡
    目录http模块server模块(虚拟主机配置)location模块基本语法匹配类型等号匹配(=)正则匹配(~)忽略大小写的正则匹配(~*)常见指令嵌套location反向代理负载均衡步骤1:定义Upstream块步骤2:配置Server和Location块示例配置负载均衡策略Q&A1.location里root和alias的区别是什么?Ngi......
  • nginx 反向代理常用设置说明
    nginx反向代理常用设置说明根据不同的后缀名访问不同的服务器地址例如:server{listen80;server_nameaaa.com.cn;#服务器地址或绑定域名#^~/api表示匹配前缀为api的请求location^~/api/{#proxy_pass的结尾有/,->效果:会在请......
  • linux反向代理原理:帮助用户更好地优化网络架构
    Linux反向代理原理详解反向代理是一种在网络架构中常用的技术,尤其在Linux环境下被广泛应用。它可以帮助实现负载均衡、安全防护和请求缓存等功能。本文将深入探讨Linux反向代理的原理、工作机制以及其应用场景。1.什么是反向代理反向代理是指代理服务器接收客户端的请求,......
  • nginx 反向代理
    nginx.confhttp{server{listen80;server_namelocalhost;location^~/api{roothtml;indexindex.html;proxy_passhttp://localhost:5000/api;#前面加httpproxy_r......
  • 正向代理与反向代理通俗理解
    正向代理。把整个流程比如成去饭店吃饭,我们也就是用户(客户端)去饭店吃饭(发送一个请求),你知道你要吃的是鱼香肉丝(请求),可是你不能自己做,那么就需要让大厨(服务端)给你做,可是去了饭店,大厨是在后台的,你也不能直接去告诉大厨,因为你没有权限(服务端在后台)这时候就需要服务员(代理)来帮忙告诉......
  • Nginx:反向代理服务器常用功能汇总【不断更新~】
        在这篇文章中,我会通过自己在工作中不多摸索、实践,总结一些经常会用到的Nginx功能,包括反向代理、负载均衡等一些比较出色的功能的使用,文章不定期会更新,有需要的小伙伴可以先收藏起来哈,话不多说,那我们现在开始。    首先我们来大概介绍一下文章流程,开篇我们......
  • 宝塔配置域名反向代理到ip+端口的接口地址
    宝塔配置域名反向代理到ip+端口的接口地址添加站点配置域名配置反向代理目标URL写服务器的本地ip地址127.0.0.1代理到9000端口上发关域名也写127.0.0.1或者$host申请https证书访问接口https://abc.baidu.com/xxx/xxx......
  • 反向代理的工作原理解析
     在当今数字化时代,网络通讯扮演着重要的角色,而代理技术为网络通讯提供了更多的灵活性和安全性。作为两种重要的代理技术,代理服务器和反向代理的运行原理和用途各有不同。本文将重点介绍反向代理的运行原理,深入探讨其在网络通讯中的作用和优势。1.代理服务器和反向代理之间......
  • 深入解析 Nginx 反向代理:配置、优化与故障排除
    深入解析Nginx反向代理:配置、优化与故障排除Nginx是一个高性能的HTTP和反向代理服务器,它以其高并发和高可扩展性在业界享有盛誉。反向代理是Nginx的重要功能之一,通过反向代理可以实现负载均衡、安全代理、缓存等多种用途。本篇文章将深入解析Nginx反向代理的工作......
  • Nginx反向代理,代理H5前端 ,java后端,使用服务器+finalshell+vpn
    使用前确认已经安装好nginx,这里我使用的是普通的nginx,注意不是Docker版本的nginx输入nginx-t查询一下,自己的nginxconfig.nginx在那个包下,方便查询 使用catnginx.conf命令,进入需要配置的conf中(这个是我使用的server[server{listen82;s......