首页 > 其他分享 >计算梯度jax

计算梯度jax

时间:2023-05-13 13:47:33浏览次数:27  
标签:loss jax 梯度 params 计算 print grad lambda

# %%
import jax        
import jax.numpy as jnp

import numpy as np

def loss(params, r):
    lambda_a, lambda_s = params
    return jnp.maximum(r - lambda_a + lambda_s, 0).max()
 

loss_grad = jax.grad(loss)

grad_a, grad_s = loss_grad(params, r)
print(grad_a, grad_s)

##%%

def jac(params, r):
    lambda_a, lambda_s = params
    v = r - lambda_a + lambda_s
    g_b = np.logical_and(v>0, v==v.max()).astype(float)
    g_b /= g_b.sum()
    return -g_b, g_b


#%% 测试
print("data1")
      
params = (np.array([-.50, .51, .51]), np.random.randn(3) )
r =  1

grad_a, grad_s = loss_grad(params, r)
print(params)    
print(grad_a, grad_s)
ga, gs = jac(params, r)
print(grad_a==ga, grad_s==gs)

标签:loss,jax,梯度,params,计算,print,grad,lambda
From: https://www.cnblogs.com/bregman/p/17397225.html

相关文章

  • 浮点数计算 0.1+0.2 ≠ 0.3
    相关网站:https://0.30000000000000004.com/参考B站讲解视频1.原因科学计数法的二进制版本,类似于十进制中表示1/3是无限循环小数,0.1在二进制中是无限循环小数,无法精确表示为什么使用浮点数,其中关键一点就是计算速度快且占用内存空间小。2.如何注意和规避对于浮点数不能......
  • 如何准确的计算出不同类型电阻的大小 All In One
    如何准确的计算出不同类型电阻的大小AllInOne薄膜电阻电阻类型电阻种类碳膜电阻陶瓷电阻金属元素电阻金属薄膜电阻金属氧化物薄膜电阻厚膜电阻薄膜电阻绕线电阻无感绕线电阻电子元器件选型基础-电阻https://www.digikey.cn/zh/forum/t/topic/690如何为......
  • ACM板子(1)(缺最短路、计算几何、数学、高级数据结构)
    ACM板子(1)(缺最短路、计算几何、数学、高级数据结构)快排、归并voidquicksort(int*num,intl,intr){if(r<=l)return;intx=l-1,y=r+1,z=num[l+r>>1];while(x<y){dox++;while(num[x]<z);doy--;while(num[y]>z);if(x<y)s......
  • MapReduce分布式计算(二)
    练习同一时间不同地区的温度求每天的最高温度2022-04-03,21.22022-04-03,18.52022-04-03,24.32022-04-03,16.52022-04-03,10.02022-04-04,28.32022-04-04,18.72022-04-04,30.02022-04-04,21.1代码实现packagecom.doit.demo04;importorg.apache.hadoop.conf.Con......
  • 爆粗!类com.itheima.web.servlet.AjaxServlet不是servlet
    描述:Classcom.itheima.web.servlet.AjaxServletisnotaServlet  二、解决问题1、问题分析  根据报错的提示内容,貌似是Servlet的问题。 2、检查代码  无论是写的servlet测试java代码,还是pom.xml似乎都没有问题。  细心观察,发现了问题,自己忘记配置<scop>节......
  • 信捷XD系列4轴标准程序,包含轴回零,相对定位,绝对定位,手,电机参数计算,整个程序的模块都有
    信捷XD系列4轴标准程序,包含轴回零,相对定位,绝对定位,手,电机参数计算,整个程序的模块都有,程序框架符合广大编程人员思维,只要弄明白这个程序,一般的项目都不会无从下手,参照这个,做项目不再难,拿着就可用,思路清晰易懂ID:7816669612443546......
  • 信捷PLC程序,八轴程序,有伺服也有步进,内部有伺服和步进计算公式换算,模块化编程框架,包含
    信捷PLC程序,八轴程序,有伺服也有步进,内部有伺服和步进计算公式换算,模块化编程框架,包含各功能区规划,伺服步进电机DOG+JOG,气缸手动,公式计算数据处理,报警功能区,自动步进S调用等。研究透彻应用此思维,完全能应用上手中大型各日系主流系统,如日本三菱,松下,欧姆龙,基恩士,国内主流信捷,汇川,台......
  • 信捷套袋机自动装袋机程序自动入袋,自动双边热封 采用函数计算轴参数
    信捷套袋机自动装袋机程序自动入袋,自动双边热封采用函数计算轴参数已上机应用信捷触摸屏加XD5-60T6脉冲控制5台伺服通讯控制一台变频器,含触摸和程序屏源文件,程序带注解。含回原点点动绝对定位相对定位入门教程,弄懂了你就可以控制伺服步进ID:7512655957931620......
  • Ajax Loading进度gif在线生成
    在这个被Ajax技术统治的互联网时代,很多Ajax程序都会在异步读取数据的同时,显示一个正在读取或Loading的动画,向大家推荐一个在线生成Loading预载动画Gif图片的网站,它不但提供了超多的Loading动画样式供你选择,而且你还可以自定义尺寸、颜色等参数,可谓方便到家,最最重要的是,PreLoaders......
  • 年月日的计算
    //type:年、月或者日//data:日期//加减量functionaddOrReduceDate(type,date,num){ varnowDate=null; varstrDate=""; num=parseInt(num);//防止传入字符串报错 varseperator1="-"; varseperator2=":"; if(date==""......