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

东阳企业网站微商城建设网站域名 过期

东阳企业网站微商城建设,网站域名 过期,服务外包下的网站开发,做视频网站带宽不够怎么办通过反向传播进行自动求梯度1-requires_grad问题2-梯度3- detach() 和 with torch.no_grad(#xff09;4- Tensor.data.requires_gradPyTorch提供的autograd包能够根据输入和前向传播过程自动构建计算图#xff0c;并执行反向传播. 1-requires_grad问题 requires_gradTrue … 通过反向传播进行自动求梯度1-requires_grad问题2-梯度3- detach() 和 with torch.no_grad(4- Tensor.data.requires_gradPyTorch提供的autograd包能够根据输入和前向传播过程自动构建计算图并执行反向传播. 1-requires_grad问题 requires_gradTrue 开始追踪(track)在其上的所有操作这样就可以利用链式法则进行梯度传播了,完成计算后可以调用.backward()来完成所有梯度计算。默认 requires_grad False 完成计算后可以调用**.backward()来完成所有梯度计算。此Tensor的梯度将累积到.grad**属性中。 #x是直接创建的所以它没有grad_fn, 而 x torch.ones(2, 2, requires_gradTrue) print(x)#tensor([[1., 1.],[1., 1.]], requires_gradTrue) print(x.grad_fn)#None#y是通过一个加法操作创建的所以它有一个为的grad_fn。 y x 2 print(y)#tensor([[3., 3.],[3., 3.]], grad_fnAddBackward) print(y.grad_fn)#AddBackward object at 0x1100477b8#打印是否有叶子节点 print(x.is_leaf, y.is_leaf) # True False若开始没有设置requires_grad 属性可通过 .requires_grad_()来用in-place的方式改requires_grad属性 a torch.randn(2, 2) # 缺失情况下默认 requires_grad False a ((a * 3) / (a - 1)) print(a.requires_grad) # False a.requires_grad_(True) print(a.requires_grad) # True b (a * a).sum() print(b.grad_fn)#SumBackward0 object at 0x118f50cc02-梯度 标量标量就是一个数字。标量也称为0维数组 向量向量是一组标量组成的列表。向量也称为1维数组。 矩阵矩阵是由一组向量组成的集合。矩阵也称为2维数组。 张量张量是矩阵的推广可以用来描述N维数据 注意在y.backward()时如果y是标量则不需要为backward()传入任何参数否则需要传入一个与y同形的Tensor out.backward() # 等价于 out.backward(torch.tensor(1.)) 反向转播#求导 x torch.tensor([1.0, 2.0, 3.0, 4.0], requires_gradTrue) y 2 * x z y.view(2, 2) print(z)#tensor([[2., 4.],[6., 8.]], grad_fnViewBackward)现在 z 不是一个标量所以在调用backward时需要传入一个和z同形的权重向量进行加权求和得到一个标量。 v torch.tensor([[1.0, 0.1], [0.01, 0.001]], dtypetorch.float) z.backward(v) print(x.grad)#tensor([2.0000, 0.2000, 0.0200, 0.0020]) x.grad是和x同形的张量3- detach() 和 with torch.no_grad( 两种方式中断梯度追踪无法进行梯度链式法则梯度传播 1-detach() 将其从追踪记录中分离出来这样就可以防止将来的计算被追踪这样梯度就传不过去了 2-with torch.no_grad() 将不想被追踪的操作代码块包裹起来这种方法在评估模型的时候很常用因为在评估模型时我们并不需要计算可训练参数requires_gradTrue的梯度。 x torch.tensor(1.0, requires_gradTrue) y1 x ** 2 with torch.no_grad():y2 x ** 3 y3 y1 y2print(x.requires_grad)#true print(y1, y1.requires_grad) #tensor(1., grad_fnPowBackward0) True print(y2, y2.requires_grad) # False print(y3, y3.requires_grad) # tensor(2., grad_fnThAddBackward)Truey3.backward()#y2被包裹 所以y2有关的梯度是不会回传的 结果只是y1 对x的梯度 print(x.grad)#tensor(2.)#使用y2的传播会报错 #RuntimeError: element 0 of tensors does not require grad and does not have a grad_fn4- Tensor.data.requires_grad 当你想要修改tensor的数值但是又不希望被autograd记录即不会影响反向传播那么我么可以对tensor.data进行操作。 x torch.ones(1,requires_gradTrue)print(x.data) # tensor([1.]) #还是一个tensor print(x.data.requires_grad) #False #但是已经是独立于计算图之外y 2 * x x.data * 100 # 只改变了值不会记录在计算图所以不会影响梯度传播y.backward()#tensor([100.], requires_gradTrue) print(x) # 更改data的值也会影响tensor的值 print(x.grad)#tensor([2.])
http://www.yayakq.cn/news/5901/

相关文章:

  • 秦皇岛市 网站建设微商怎么推广自己的产品
  • 网站建设的维护与更新网站排名软件包年
  • 部署iis网站网页设计与网站开发期末
  • 漳州建设银行网站造价师注册管理系统
  • wordpress 导航站 模板珠海网站建设的公司排名
  • 先申请网站空间做网站用方正字体可以额的
  • 金华网站建设黄页WordPress方糖
  • 网站建设的通知网站维护分工永州市建设局网站
  • 长春网站制作建设深圳网络推广团队
  • 电商网站搭建流程郑州网站开发网站开发
  • 建设工程国检中心网站产品软文范例1000字
  • 成都网站网页制作网店代运营收费多少钱
  • 宝坻网站建设制作免费制作网页的网站
  • 访问的网站显示建设中如何卸载微wordpress
  • 河南省网站建设意见男女做那个全面视频网站
  • 特价流量网站wordpress详解
  • 高端产品网站建设网站建设公司哪家好智搜宝
  • 做渠道该从哪些网站入手2022年域名申请时间
  • asp网站首页模板cpa单页网站怎么做
  • 无锡网站制作专业服务公司国际市场那个app可以看
  • 销售网站的技巧什么网站可以接室内设计做
  • 网站开发需要掌握的知识如何搭建一个局域网
  • 南开建设网站公司发展规划范文
  • 教育网站建设 思维导图广州网站策划公司
  • 企业网站例子wordpress做人事网站
  • 闭站保护对网站影响百度装修网站
  • seo网站排名优化服务南京三大软件外包公司
  • 建设网站服务器自营方式网站建设中外链与内链的技巧
  • 用php做网站和go做网站怎么识别网站是用什么语言做的
  • 在线男人和女人做那件事网站软件工程师证书报考要求