PyTorch使用教程-导数应用
PyTorch使用教程-导数应用
前言
由于机器学习的基本思想就是找到一个函数去拟合
样本数据分布,因此就涉及到了梯度
去求最小值
,在超平面我们又很难直接得到全局最优值,更没有通用性,因此我们就想办法让梯度沿着负方向下降,那么我们就能得到一个局部或全局的最优值了,因此导数就在机器学习中显得非常重要了
基本使用
tensor.backward()
可以及自动将梯度累加积到tensor.grad
上
x = torch.ones(3,3)
print(x.requires_grad)
x.requires_grad_(True)
print(x.requires_grad)
y = x**2/(x-2)
out = y.mean()
print(x.grad)
out.backward()
print(x.grad)
False
True
None
tensor([[-0.3333, -0.3333, -0.3333],[-0.3333, -0.3333, -0.3333],[-0.3333, -0.3333, -0.3333]])
requires_grad
可以获取到tensor
是否可导
requires_grad_()
可以设置tensor
是否可导
grad
查看当前tensor
导数
上面的公式很简单,程序含义
1/4 * (x**2) / (x-2)
求x的导数,基本公式在下方
注意点
我们使用.mean
后得到的是标量
,如果不是标量
会报错
x = torch.ones(3, requires_grad=True)
y = x * 2
y = y * 2
print(y)
tensor([4., 4., 4.], grad_fn=<MulBackward0>)
y.backward()
print(x.grad)
报错
RuntimeError: grad can be implicitly created only for scalar outputs
v = torch.tensor([0.1, 1.0, 0.0001], dtype=torch.float)
y.backward()
print(x.grad)
tensor([4.0000e-01, 4.0000e+00, 4.0000e-04])
no_grad()
作用域
如果想要某部分程序不可导那么我们可以使用这个
x = torch.ones(3, requires_grad=True)
y = x * 2
print(y.requires_grad)
with torch.no_grad():y = y * 2 print(y.requires_grad)
True
False
总结
这一章我们使用pytorch里面的backward
,自动实现了函数的求导,帮助我们在后面面对很多超大参数量的函数的时候,求导就变得游刃有余
上节
PyTorch使用教程-安装与基本使用
预习
PyTorch使用教程-PyTorch构建神经网络(上)
PyTorch使用教程-导数应用相关推荐
- 深度学习之Pytorch基础教程!
↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:李祖贤,Datawhale高校群成员,深圳大学 随着深度学习的发展 ...
- 【深度学习】深度学习之Pytorch基础教程!
作者:李祖贤,Datawhale高校群成员,深圳大学 随着深度学习的发展,深度学习框架开始大量的出现.尤其是近两年,Google.Facebook.Microsoft等巨头都围绕深度学习重点投资了一系 ...
- pytorch官方教程中文版(一)PyTorch介绍
pytorch编程环境是1.9.1+cu10.2 建议有能力的直接看官方网站英文版! 下面所示是本次教程的主要目录: pytorch官方教程中文版: PyTorch介绍 学习PyTorch 图像和视频 ...
- pytorch官方教程中文版(二)学习PyTorch
pytorch编程环境是1.9.1+cu10.2 建议有能力的直接看官方网站英文版! 下面所示是本次教程的主要目录: pytorch官方教程中文版: PyTorch介绍 学习PyTorch 图像和视频 ...
- PyTorch官方教程大更新:增加标签索引,更加新手友好
点击上方↑↑↑"视学算法"关注我 来源:公众号 量子位 授权 PyTorch官方教程,现已大幅更新: 提供标签索引,增加主题分类,更加新手友好. 不必再面对一整页教学文章茫然无措, ...
- PyTorch 官方教程发布,限时免费开放!
点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 PyTorch 如今已经称为最受欢迎的深度学习框架之一了!2019年1月到6月底,在arXiv ...
- 撒花!PyTorch 官方教程中文版正式上线,激动人心的大好事!
点击上方"AI有道",选择"星标"公众号 重磅干货,第一时间送达 什么是 PyTorch?其实 PyTorch 可以拆成两部分:Py+Torch.Py 就是 P ...
- PyTorch官方教程大更新:增加标签索引,新手更加友好
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作分享,不代表本公众号立场,侵权联系删除 转载于:量子位 AI博士笔记系列推荐 周志华<机器学习>手推 ...
- PyTorch官方教程《Deep Learning with PyTorch》开源分享,LeCun力荐,通俗易懂
1 前言 谈到深度学习框架,就不得不谈TensorFlow 和 PyTorch .目前来看,TensorFlow 和 PyTorch 框架是业界使用最为广泛的两个深度学习框架, TensorFlow在 ...
最新文章
- 无法远程分发安装软件原因
- other than ,more than,less than,rather than到底有什么区别
- OpenCV优化:图像的遍历4种方式
- Python初学者之ModuleNotFoundError:No module named 'cv2'简单解决办法
- CSS浏览器兼容性问题详解总结
- 机器人 铑元素_中国青年化学家元素周期表专辑 | 胡淑贤:我为镨代言
- 配置openldap_openldap环境搭建+集成JIRA服务
- 菜鸟学Linux 第026篇笔记 LVM
- 粒子群优化算法python_粒子群优化算法(PSO)
- python3 -m pip install pymongo_Python3上Pymongo的SSL握手问题
- Serv-U FTP服务器安装带绿化版工具
- Mac版Lync无法登陆问题(登录设置)
- 计算机病毒是如何入侵你的电脑吗,怎么样正确处理被病毒侵入的电脑
- 计算机cpu的介绍,CPU的详细介绍
- cad动态块制作翻转_cad创建动态块实例教程:翻转参数和动作的应用 - CAD自学网...
- 手机wifi的mac地址是什么??
- SPSS(基础篇09)--拆分数据文件
- 1011: [HNOI2008]遥远的行星
- 超越大典汽车维修系统
- Vue实现底部导航栏切换页面及图片