首页 > 其他分享 >jax框架:jax.grad

jax框架:jax.grad

时间:2024-01-19 21:27:54浏览次数:23  
标签:jax 框架 grad arange astype fun numpy

官方地址:

https://jax.readthedocs.io/en/latest/_autosummary/jax.grad.html#jax.grad


image



这里只给出几个样例代码:

  1. 设置 allow_int 参数,实现对整数类型求导:

未对整数类型求导:

import jax

def fun(x, y):
    print(x, y)
    return jax.numpy.sum(2*x[0] + y[0] + 2*x[1] + y[1])

fun_grad = jax.grad(fun, argnums=(0, ))

x = [jax.numpy.arange(0, 5).astype(jax.numpy.float32), jax.numpy.arange(1, 6).astype(jax.numpy.float32),]
y = [jax.numpy.arange(1, 6), jax.numpy.arange(2, 7),]

print( fun_grad(x, y) )

正常运行:

image


对整数类型求导:

import jax

def fun(x, y):
    print(x, y)
    return jax.numpy.sum(2*x[0] + y[0] + 2*x[1] + y[1])

fun_grad = jax.grad(fun, argnums=(0, 1))

x = [jax.numpy.arange(0, 5).astype(jax.numpy.float32), jax.numpy.arange(1, 6).astype(jax.numpy.float32),]
y = [jax.numpy.arange(1, 6), jax.numpy.arange(2, 7),]

print( fun_grad(x, y) )

报错:

image


通过设置 allow_int 实现对整数类型求导:

import jax

def fun(x, y):
    print(x, y)
    return jax.numpy.sum(2*x[0] + y[0] + 2*x[1] + y[1])

fun_grad = jax.grad(fun, argnums=(0, 1), allow_int=True)

x = [jax.numpy.arange(0, 5).astype(jax.numpy.float32), jax.numpy.arange(1, 6).astype(jax.numpy.float32),]
y = [jax.numpy.arange(1, 6), jax.numpy.arange(2, 7),]

print( fun_grad(x, y) )

未报错运行,但是没有获得争取结果:

image


应该这么说,在jax中不能对整数类型求导的,虽然这里设置了 allow_int 但是也不能得到正确的对整数类型的求导。



标签:jax,框架,grad,arange,astype,fun,numpy
From: https://www.cnblogs.com/devilmaycry812839668/p/17975633

相关文章

  • uWebSockets.js 框架经验
    目录结构project/│├──src/│├──app.ts│├──routes/││├──userRoutes.ts││└──index.ts│├──entities/││└──User.ts│├──utils/││└──parseQuery......
  • 使用Nuxt框架刷新页面向后端接口请求两次的问题
    背景:当我刷新页面时,发现后端接口被请求了两次前端使用框架:nuxt、vue、axios等后端使用框架:springboot、maven、redis、mybatisplus等主页面程序代码<script>importhomePagefrom'@/api/homePage'exportdefault{data(){return{bannerList:[],//轮播......
  • springmvc与ajax相互调用, 2.springmvc中如何拦截get请求
    通过JACKson框架可以把java里面的对象转化成js可以识别的json对象。具体步骤:1.加入Jack.jar2.在配置文件配置json映射3.在接受ajax方法里面一颗直接返回OBject,list等,但方法加@ResponseBody注解。  @RequestMapping注解中加上method=RequestMethod.GET参数就可以实现拦......
  • Jax框架:通过显存分析判断操作是否进行jit编译
    相关:https://jax.readthedocs.io/en/latest/device_memory_profiling.html代码:importjaximportjax.numpyasjnpimportjax.profilerdeffunc1(x):returnjnp.tile(x,10)*0.5deffunc2(x):y=func1(x)returny,jnp.tile(x,10)+1x=jax.random.......
  • android开发编译出错:Unable to find method ''org.gradle.api.file.RegularFileProper
    Unabletofindmethod''org.gradle.api.file.RegularFilePropertyorg.gradle.api.file.ProjectLayout.fileProperty(org.gradle.api.provider.Provider)'''org.gradle.api.file.RegularFilePropertyorg.gradle.api.file.ProjectLayout.fileProp......
  • ICDM'23 BICE论文解读:基于双向LSTM和集成学习的模型框架
    本文分享自华为云社区《ICDM'23BICE论文解读》,作者:云数据库创新Lab。导读本文《EfficientCardinalityandCostEstimationwithBidirectionalCompressor-basedEnsembleLearning》是由华为云数据库创新Lab联合电子科技大学数据与智能实验室发表在顶会ICDM’23的长文。ICDM......
  • 若依框架入门一源码分析一登录验证码
    若依框架入门一源码分析一关于登录页面的验证码问题前端页面的验证码开关设置的是true,但是打开画面验证码没有被显示,原因是后端代码判断了redis中是否有值,有则覆盖前端<el-form-itemprop="code"v-if="captchaEnabled"><el-inputv-model="loginForm......
  • 论文翻译 | 【深入挖掘Java技术】「底层原理专题」深入分析一下并发编程之父Doug Lea
    前提介绍DougLea在州立大学奥斯威戈分校(DougLea)摘要本文深入探讨了一个Java框架的设计、实现及其性能。该框架遵循并行编程的理念,通过递归方式将问题分解为多个子任务,并利用工作窃取技术进行并行处理。所有子任务完成后,其结果被整合以形成完整的并行程序。在总体设计上,该框架借鉴......
  • Flask企业级后台管理 Python 应用开发框架
    项目介绍一款Python语言基于Flask、Layui、MySQL等框架精心打造的一款模块化、高性能、企业级的敏捷开发框架,本着简化开发、提升开发效率的初衷触发,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式:单图上传、多图上传、下拉选择、开关按钮、单选按钮、多选按钮、图片裁......
  • 【驱动】I2C驱动分析(二)-驱动框架
    I2C驱动框架简介I2C驱动属于总线-设备-驱动模型的,与I2C总线设备驱动模型相比,大体框架是一样,系统的整体框架如下所示。最上层是应用层,在应用层用户可以直接用openreadwrite对设备进行操作,往下是设备驱动层,这个就是外围的比如一些用I2C总线连接到SOC的传感器或者EEPROM的驱......