pytorch 简简单单求个值
能用张量处理就用张量,不要使用for in 跑循环,一个是容易出错,一个是比较浪费时间,应用广播机制的话去做很容易的
1.5
使用mean处理平均值
2.
在处理梯度的时候无法更改自身,因此使用的办法是with
一个简单的例子:
import torch as tt
x=tt.tensor(range(20))
y=x+3
w=tt.tensor([1.0],requires_grad=True)
b=tt.tensor([1.0],requires_grad=True)
def loss_fn(x,y,w,b):
det=0.5(y-wx-b)**2
det=det.mean()
return det
def training_loop(n_epochs, learning_rate, w,b,x, y):
for epoch in range(1, n_epochs + 1):
if w.grad is not None:
w.grad.zero_()
b.grad.zero_()
y=w*x+b
loss = loss_fn(x,y,w,b)
loss.backward()
with torch.no_grad():
w -= learning_rate * w.grad
return w,b
training_loop(10,1e-2,w,b,x,y)
这里的with是切换上下文,后面的torch.no_grad()是强制断图,在需要对叶子节点本身进行修改的时候使用
再补充一下
所谓标量y对矢量x求导,指的是,总的贡献y,对于每个分量贡献x进行求导,如果有n个x,里面代表的是,不同的x
比如卖苹果
苹果的价格是总的贡献,每个x的标度,比如口味,地址,大小是分贡献,每个Y,对应一个序列,(x1,x2,x3……)
而如果是矢量y对矢量x求导,代表的是y的每个分量对于x进行求导,需要传入一个和y相同大小的,代表y在每个方向上的权重。(一般是1,1,1但是也可以是1,2,3,权重是直接乘上去的)
retain_graph=True的意义在于不加的话,每次back时都会拆掉已经构建好的图,而第二次的时候依旧会尝试访问拆掉的图,所以会导致报错,这时候就需要这个东西
torch.autograd.grad这个函数的意义在于不用遍历全图求梯度但是图还是建了的,而且可以用来求单个梯度,但是并没有累积在其中,因此需要使用诸如:
print(torch.autograd.grad)之类的来访问,对于一次性的东西来说很方便
4.玩back(反向求导)的时候梯度会累加,这可能是因为第二次计算的结果,因此多次更新/多次反向时需要将梯度至为0
pytorch 简简单单求个值的更多相关文章
- ACM3 求最值
/*2*2014.11.18*求最值*描述:给定N个整数(1<=N<=100),求出这N个数中的最大值,最小值.*输入:多组数据,第一行为一个整数N,第二行为N个不超过100的正整数,用空 ...
- [NOI2005]维修数列 Splay tree 区间反转,修改,求和,求最值
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1500 Description Input 输入文件的第1行包含两个数N和M,N表示初始时数 ...
- hdu4521-小明系列问题——小明序列(线段树区间求最值)
题意:求最长上升序列的长度(LIS),但是要求相邻的两个数距离至少为d,数据范围较大,普通dp肯定TLE.线段树搞之就可以了,或者优化后的nlogn的dp. 代码为 线段树解法. #include ...
- javascript之求最值
求最值: var selections = $("#deliveryGridSalesOrGoods").datagrid('getRows'); var costPrice = ...
- poj3264(线段树区间求最值)
题目连接:http://poj.org/problem?id=3264 题意:给定Q(1<=Q<=200000)个数A1,A2,```,AQ,多次求任一区间Ai-Aj中最大数和最小数的差. ...
- Sql示例说明如何分组后求中间值--【叶子】
原文:Sql示例说明如何分组后求中间值--[叶子] 这里所谓的分组后求中间值是个什么概念呢? 我举个例子来说明一下: 假设我们现在有下面这样一个表: type name price -- ...
- hdu 1754 I Hate It(树状数组区间求最值)2007省赛集训队练习赛(6)_linle专场
题意: 输入一行数字,查询第i个数到第j个数之间的最大值.可以修改其中的某个数的值. 输入: 包含多组输入数据. 每组输入首行两个整数n,m.表示共有n个数,m次操作. 接下来一行包含n个整数. 接下 ...
- C语言 · 求arccos值
算法提高 7-2求arccos值 时间限制:10.0s 内存限制:256.0MB 问题描述 利用标准库中的cos(x)和fabs(x)函数实现arccos(x)函数,x取值范围是[- ...
- 位运算求最值 学习笔记 (待补充QAQ)
没有什么前言?直接进入正题qwq 俩俩异或 求最值: 建trie树 O(n)枚举每个数找这个数的最值,每次反走就成,还可以剪枝一波(如果在某位已经小于ans显然可以直接return? void Ins ...
- [note]一类位运算求最值问题
[note]一类位运算求最值问题 给定一些数,让你从中选出两个数a,b,每次询问下列中的一个 1.a and b的最大值 2.a xor b的最大值 3.a or b的最大值 神仙们都是FWT,小蒟蒻 ...
随机推荐
- 生成19位long型唯一数字id
/** * 生成19位long型唯一数字id * @return */ public static long GetLong19UUID() { // String nanoRandom = Syst ...
- uniapp 扫描
借鉴链接:https://blog.csdn.net/qq_33165549/article/details/89879435 1.扫描页面 <template> <view> ...
- got multiple values for keyword argument 'to_fields'
django.db.models.fields.related.ForeignObject.__init__() got multiple values for keyword argument 't ...
- java8 升级 17 兼容测试 emt4j
测试兼容性的,emt4j 在readme 里 download 节目,点击下载 https://github.com/adoptium/emt4j /root/emt4j-0.3/bin/analys ...
- 《Spring Boot从零开始学(视频教学版)》快速入门Spring Boot应用开发
#好书推荐##好书奇遇季#<Spring Boot从零开始学(视频教学版)>,目前为止较好的一本Spring Boot入门书.京东当当天猫都有发售.本书配套示例代码.课件与教学视频.定价7 ...
- 《Python 3网络爬虫实战》示例源码免费下载
#好书推荐##好书奇遇季#<Python 3网络爬虫实战>京东当当天猫都有发售. https://item.jd.com/12936936.html 本书配套示例源码,文后提供了下载二维码 ...
- k8s_使用k8s部署wordpress博客系统(一)
系统部署流程 使⽤kubernetes部署wordpress+MySQL, 并利⽤NFS去保存我们容器的源代码以及DB数据.搭建好nfs后任意node上的Pod访问db或者业务代码都会有相同的效果,数 ...
- (四十二)Unittest单元测试框架之关于unittest还需要知道的-跳过测试和预期失败
随笔记录方便自己和同路人查阅. #------------------------------------------------我是可耻的分割线--------------------------- ...
- 哈希表相关题目-python
栈&队列&哈希表&堆-python https://blog.csdn.net/qq_19446965/article/details/102982047 1.O(1)时间插 ...
- 微信小程序 底部导航和广告轮播图3D实现
底部导航 在app.json中 "tabBar": { "list": [ { "pagePath": "pages/inde ...