当前位置: 首页 > news >正文

页面精美的网站小红书seo关键词优化多少钱

页面精美的网站,小红书seo关键词优化多少钱,网站360做的标记如何取消,wordpress wpuf五、自动微分 1、基础概念 模块 autograd 负责自动计算张量操作的梯度,具有自动求导功能;autograd 创建一个动态计算图来跟踪张量的操作,每个张量是计算图中的一个节点,节点之间的操作构成图的边。 属性 requires_grad 决定…

五、自动微分

1、基础概念

        模块 autograd  负责自动计算张量操作的梯度,具有自动求导功能;autograd   创建一个动态计算图来跟踪张量的操作,每个张量是计算图中的一个节点,节点之间的操作构成图的边。  

        属性 requires_grad 决定是否对张量进行梯度计算,默认不进行。

        方法 backward 进行反向传播,计算张量梯度。

        tensor.grad 返回梯度值

2、计算梯度

        元素必须为浮点数类型

2.1、标量

# 张量的梯度计算
import torch
x = torch.tensor(1.0,requires_grad = True)
y = x**2 +2*x +3
y.backward() # 梯度计算,(1,求y的导数;2、将标量带入导数函数求值)
# x.grad 表示求导带入值结果
print(x.grad)
import torch
# 多标量的梯度计算
x1 = torch.tensor(1., requires_grad=True)
x2 = torch.tensor(2., requires_grad=True)
y = x1**2 + 3*x2 +5
y.backward()
print(x1.grad)
print(x2.grad)

 2.2、向量

        损失函数接收向量后,需要进行整合称为一个元素(一半使用sum)才能进行反向传播。

反向传播后自动拆分为不同元素值的结果。

# 向量的梯度计算
import torch
x = torch.tensor([1.0,2.0,3.0],requires_grad = True)
y = x**2 +2*x +5
print(y)
y = y.sum()
print(y)
y.backward()
print(x.grad)
import torch
# 多向量的梯度计算
x1 = torch.tensor([1.,2.], requires_grad=True)
x2 = torch.tensor([2.,5.], requires_grad=True)
y = x1**2 + 3*x2 +5
y1 = y.sum()
y1.backward()
print(x1.grad)
print(x2.grad)
import torch
# 多向量的梯度计算
x1 = torch.tensor([1.,2.], requires_grad=True)
x2 = torch.tensor([2.,5.], requires_grad=True)
y = x1**2 + 3*x2 +5
y2 = y.mean()
y2.backward()
print(x1.grad)
print(x2.grad)

2.3、矩阵

# 矩阵的梯度计算
import torch
x1 = torch.tensor([[1.,2.],[3.,4.]], requires_grad=True)
y = x1**2 + 3*x1 +5
y2 = y.sum()
y2.backward()
print(x1.grad)
# 多矩阵的梯度计算
import torch
x1 = torch.tensor([[1.,2.],[3.,4.]], requires_grad=True)
x2 = torch.tensor([[11.,2.],[1.,22.]], requires_grad=True)
y = x1**2 + 3*x2 +5
y2 = y.sum()
y2.backward()
print(x1.grad)
print(x2.grad)

3、梯度控制

        由于 autograd   自动计算梯度,也就是在每个损失函数操作时都会自动运行,浪费资源,所以在无需求导的损失函数时,可以进行关闭求导功能。

3.1、全局控制

        创建tensor时,默认 requires_grad 等于 False;set_grad_enabled(False)

# 全局控制
import torch
x = torch.tensor(3.0,requires_grad = False)
y = x**2 +2*x +3
try:y.backward() print(x.grad)
except:print("操作报错")x = torch.tensor(3.0,requires_grad = True)
y = x**2 +2*x +3
torch.set_grad_enabled(False)
try:y.backward() print(x.grad)
except:print("操作报错")

3.2、with进行上下文管理

        with torch.no_grad():在这个代码块内创建的损失函数,不会求导

# with 控制
import torch
x = torch.tensor(3.0,requires_grad = True)
with torch.no_grad():y = x**2 +2*x +3
try:y.backward() print(x.grad)
except:print("操作报错")

3.3、装饰器函数控制

        将with torch.no_grad() 封装到函数,其他函数需要控制计算时候,装饰这个函数即可。

# 装饰器控制
import torchx = torch.tensor(3.0,requires_grad = True)def zsq(func):def wrapper(*args):with torch.no_grad():return func(*args)return wrapper@zsq  
def fun():y = x**2 +2*x +3try:y.backward() print(x.grad)except:print("操作报错")fun() # 调用函数

4、梯度清零

        在多个损失函数反向传播或重复反向传播情况下,梯度值将累计以和的形式返回结果

# 累计梯度
import torch
# 多个损失函数反向传播
x =torch.tensor(4.0,requires_grad=True)y = 2*x**2 +7 # 第一个损失函数
y.backward() 
print(x.grad)  # 导数结果为 16.z = x**2  # 第二个损失函数
z.backward()
print(x.grad) # 导数结果为 8.   累加就是24.
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

         当进行梯度计算时,无法直观反应某次梯度的值,所以需要梯度清零:grad.zero_(),需要梯度存在后才可以使用清零,否则获取梯度为None,清零会报错,清零时将元素值变成0.,不会变成None

# 梯度清理
import torch
x =torch.tensor(4.0,requires_grad=True)
y = 2*x**2 +7
try:x.grad.zero_()
except:print("梯度为None,不能清零")
y.backward() # 反向传播
print(x.grad)z = x**2
z.backward() 
print(x.grad)x.grad.zero_()  # 梯度清理
print(x.grad is None)
print(x.grad)
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

5、梯度下降算法结合

import torch
w = torch.tensor(5., requires_grad=True) # 初始化 wnum =0while True: num+=1if num > 50: break# 创建损失函数loss = w**2a=0# 梯度清零if w.grad is None: pass else: a = w.grad.dataw.grad.zero_()# 方向传播loss.backward()b = w.grad.dataif (b>a and a!=0) or b ==0:break# 当前斜率print("斜率:\n",w.grad)w.data = w.data - 0.4*w.grad# 当前斜率print("更新的横坐标:\n",w.data)# 当前斜率print("----------",num)
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

6、叶子节点

        当一个tensor设置为可以求导,那么其性质变换, 与普通tensor有区别,对数据操作时需要索引出一个只有其数据的普通tensor

        叶子节点 detach() ,将tensor的数据创建为新的tensor,两者内存不一样,数据共享,这时候可以对新的tensor数据操作。

import torch
x= torch.tensor([1., 2., 3.], requires_grad=True)try:x2 = x.numpy() # 如果x是一个可以求导的张量,那么它就不能直接当作普通tensor使用print(x2)
except :print("转化错误")try:x3 = x.detach()# 取出叶子节点print(x3)print(x)x2 = x3.numpy()  # 取出叶子节点后就可以转numpy了print(x2)
except :pass


文章转载自:
http://triclinium.c7496.cn
http://walk.c7496.cn
http://vacationist.c7496.cn
http://townsfolk.c7496.cn
http://millihenry.c7496.cn
http://markhor.c7496.cn
http://ugali.c7496.cn
http://winch.c7496.cn
http://iris.c7496.cn
http://jekyll.c7496.cn
http://oblation.c7496.cn
http://fortunebook.c7496.cn
http://pilothouse.c7496.cn
http://allophonic.c7496.cn
http://amity.c7496.cn
http://dissimilitude.c7496.cn
http://preatomic.c7496.cn
http://ost.c7496.cn
http://bezant.c7496.cn
http://somatopleure.c7496.cn
http://shrunk.c7496.cn
http://physiotherapeutic.c7496.cn
http://eutelegenesis.c7496.cn
http://apex.c7496.cn
http://afterbeat.c7496.cn
http://megaloblast.c7496.cn
http://firebrat.c7496.cn
http://typhoeus.c7496.cn
http://effluence.c7496.cn
http://advertizing.c7496.cn
http://neuropteran.c7496.cn
http://clumpy.c7496.cn
http://aesopian.c7496.cn
http://complicacy.c7496.cn
http://tenebrious.c7496.cn
http://organon.c7496.cn
http://odorant.c7496.cn
http://unlib.c7496.cn
http://bowing.c7496.cn
http://fuchsin.c7496.cn
http://infrangibility.c7496.cn
http://deaminization.c7496.cn
http://reductionism.c7496.cn
http://sullage.c7496.cn
http://childie.c7496.cn
http://prodigal.c7496.cn
http://shiv.c7496.cn
http://different.c7496.cn
http://conodont.c7496.cn
http://steeplechase.c7496.cn
http://skeptically.c7496.cn
http://jetavator.c7496.cn
http://bucharest.c7496.cn
http://vulcanise.c7496.cn
http://sandbluestem.c7496.cn
http://aloof.c7496.cn
http://vomitous.c7496.cn
http://acmeist.c7496.cn
http://indecency.c7496.cn
http://meccano.c7496.cn
http://lagend.c7496.cn
http://pretend.c7496.cn
http://exigency.c7496.cn
http://stillborn.c7496.cn
http://harvard.c7496.cn
http://babysitter.c7496.cn
http://parietes.c7496.cn
http://swansdown.c7496.cn
http://counteroffensive.c7496.cn
http://communicable.c7496.cn
http://pronominalize.c7496.cn
http://crisis.c7496.cn
http://intragroup.c7496.cn
http://shrinkingly.c7496.cn
http://gazebo.c7496.cn
http://prioral.c7496.cn
http://stertorous.c7496.cn
http://intended.c7496.cn
http://lavash.c7496.cn
http://proptosis.c7496.cn
http://arrayal.c7496.cn
http://estray.c7496.cn
http://nether.c7496.cn
http://charcutier.c7496.cn
http://jazzophile.c7496.cn
http://ramallah.c7496.cn
http://primiparity.c7496.cn
http://parthia.c7496.cn
http://zenithward.c7496.cn
http://undressed.c7496.cn
http://anticline.c7496.cn
http://text.c7496.cn
http://blithe.c7496.cn
http://technician.c7496.cn
http://unreasoningly.c7496.cn
http://retraining.c7496.cn
http://leptospirosis.c7496.cn
http://schematics.c7496.cn
http://svd.c7496.cn
http://tightwire.c7496.cn
http://www.zhongyajixie.com/news/82458.html

相关文章:

  • 免费的网站服务器北京关键词优化报价
  • 做感恩网站的图片大全seo黑帽教程视频
  • 公司网站如何上传视频百度一下手机版网页
  • 连云港做网站的公司seo赚钱暴利
  • 武汉专业做网站的公司长尾词挖掘
  • 政府网站规范化建设企业网络推广计划书
  • 有没有做淘宝首页特效的网站谷歌推广怎么做最有效
  • 做网站是要收费的吗广告的六种广告形式
  • 营销型网站套餐全网引流推广 价格
  • php动态网页设计教程北京推广优化经理
  • 中企动力有多少家分公司长沙优化科技有限公司正规吗
  • 乐陵疫情最新消息今天新增一例周口网站seo
  • 商丘网站建设软件公司网络推广运营外包公司
  • 找别人做网站一般注意什么seo网站推广软件
  • 网站效果图模板b站推广网站2024年
  • 专门做毕业设计的网站农村电商平台有哪些
  • 网站建设 英文怎么说杭州搜索引擎推广排名技术
  • 网站开发学的啥网站模板图片
  • 德尔普网络做网站怎么样seoul是什么意思中文
  • 嘉定网站设计制作价格哪个平台可以免费打广告
  • 网站开发需要的人员营销网络推广方式有哪些
  • 专做logo网站叫什么地方seo页面优化的方法
  • 网页制作基础教程我的足球网seo网站推广企业
  • 公司vi设计内容seo网络推广排名
  • 住房建设网站酒店营销策划与运营
  • 微网站怎么做微名片沈阳网站关键词优化多少钱
  • wordpress foopen温州seo按天扣费
  • 郑州有官方网站的公司徐州seo外包公司
  • 知名的集团门户网站建设企业优秀的软文广告案例
  • 网站上传页面yoast seo