一个简单的例子测试numpy和Jax的性能对比
参考:
https://baijiahao.baidu.com/s?id=1725356123619612187&wfr=spider&for=pc
个人认为如果把Jax作为一款深度学习框架来学习,那么就没有多大的必要性,因为pytorch就够了。可以说,Jax可以做到的,pytorch也可以做到,Jax做不到的,Pytorch依旧可以做到,在深度学习的计算框架来说,pytorch确实有着Jax无法短期超越的优势(个人目前长期也不太可能超越)。
不过,如果把Jax作为一个科学计算框架,或者说把Jax看做是一个类似于numpy功能的加速框架,一种普适应用的矩阵计算框架,或者是传统机器学习的计算框架,那么Jax还是具备一定优势,毕竟在不考虑深度学习计算的前提下Jax要比pytorch更加的轻量,而唯一的不足就是Jax的稳定性有待观察,毕竟不是作为成熟产品推出的,而只是作为一个实验品推出的。
给出一个numpy和Jax的对比性能的小Demo:
import jax.numpy as jnp
from jax import grad, jit, vmap
from jax import random
import numpy as np
import time
def fn(x):
return x+x*x+x*x*x
x=np.random.randn(10000, 10000)
a=time.time();fn(x);b=time.time()
print(b-a)
jax_fn=jit(fn)
x2=jnp.array(x)
a=time.time();jax_fn(x2).block_until_ready();b=time.time()
print(b-a)


通过上面的小例子,可以看到Jax的性能是numpy的十倍左右,而且这是在Jax只使用CPU的情况下,虽然这个例子不具有太多说服力,但是至少可以说明Jax在计算性能上确实要比numpy优秀些。
一个简单的例子测试numpy和Jax的性能对比的更多相关文章
- 一个简单的Spring测试的例子
在做测试的时候我们用到Junit Case,当我们的项目中使用了Sring的时候,我们应该怎么使用spring容器去管理我的测试用例呢?现在我们用一个简单的例子来展示这个过程. 1 首先我们新建一个普 ...
- ? 原创: 铲子哥 搜狗测试 今天 shell编程的时候,往往不会把所有功能都写在一个脚本中,这样不太好维护,需要多个脚本文件协同工作。那么问题来了,在一个脚本中怎么调用其他的脚本呢?有三种方式,分别是fork、source和exec。 1. fork 即通过sh 脚本名进行执行脚本的方式。下面通过一个简单的例子来讲解下它的特性。 创建father.sh,内容如下: #!/bin/bas
? 原创: 铲子哥 搜狗测试 今天 shell编程的时候,往往不会把所有功能都写在一个脚本中,这样不太好维护,需要多个脚本文件协同工作.那么问题来了,在一个脚本中怎么调用其他的脚本呢?有三种方式,分别 ...
- 扩展Python模块系列(二)----一个简单的例子
本节使用一个简单的例子引出Python C/C++ API的详细使用方法.针对的是CPython的解释器. 目标:创建一个Python内建模块test,提供一个功能函数distance, 计算空间中两 ...
- fitnesse - 一个简单的例子(slim)
fitnesse - 一个简单的例子(slim) 2017-09-30 目录1 编写测试代码(Fixture code)2 编写wiki page并运行 2.1 新建wikiPage 2.2 运行 ...
- 一个简单的例子了解states
在大规模的配置管理工作中,我们要编写大量的states.sls文件.top.sls是states系统的入口文件,它负责指定哪些设备调用哪些states.sls文件.statse的默认工作目录是在/sr ...
- 跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击 一.总结 一句话总结:比如用户留言功能,用户留言中写的是网页可执行代码,例如js代码,然后这段代码在可看到这段留言的不同一户的显示上就会 ...
- 用一个简单的例子来理解python高阶函数
============================ 用一个简单的例子来理解python高阶函数 ============================ 最近在用mailx发送邮件, 写法大致如 ...
- Spring-Context之一:一个简单的例子
很久之前就想系统的学习和掌握Spring框架,但是拖了很久都没有行动.现在趁着在外出差杂事不多,就花时间来由浅入深的研究下Spring框架.Spring框架这几年来已经发展成为一个巨无霸产品.从最初的 ...
- 关于apriori算法的一个简单的例子
apriori算法是关联规则挖掘中很基础也很经典的一个算法,我认为很多教程出现大堆的公式不是很适合一个初学者理解.因此,本文列举一个简单的例子来演示下apriori算法的整个步骤. 下面这个表格是代表 ...
- Struts2的配置和一个简单的例子
Struts2的配置和一个简单的例子 笔记仓库:https://github.com/nnngu/LearningNotes 简介 这篇文章主要讲如何在 IntelliJ IDEA 中使用 Strut ...
随机推荐
- 用 Easysearch 帮助大型车企降本增效
最近某头部汽车集团需要针对当前 ES 集群进行优化,背景如下: ES 用于支撑包括核心营销系统.管理支持系统.财务类.IT 基础设施类.研发.自动驾驶等多个重要应用,合计超 50 余套集群,累计数据超 ...
- 使用 openssl 从cer公钥证书中导出公钥pem
使用 openssl 从cer公钥证书中导出公钥pem ---------- "der 公钥证书"转 "base64 公钥证书"openssl x509 -in ...
- JavaScript防抖与节流笔记
JavaScript防抖与节流 概念 防抖(debounce)与节流(throttle)是两个相似但有本质区别的两个概念,但两个概念的存在都是为了控制在特定条件下函数最大的执行次数.这在例如将函数执行 ...
- Linux虚拟网卡TUN和TAP
简介 在 Linux 网络管理中,虚拟网卡(Virtual Network Interface)是一个重要的概念,广泛应用于虚拟化.网络仿真和隧道技术中.本文将重点介绍 TUN(Network TUN ...
- 解决NodeJS Downloading node-sass 卡死慢安装失败的问题
之前写过一篇从0开始的NodeJS安装配置教程,在那篇文章结尾提到使用过程中还有一个坑,只是没有遇到就没写,时隔多日在我使用某开源项目的时候又遇到了这个问题 下载依赖时一直卡在 Downloading ...
- Diffusers实战
Smiling & Weeping ---- 一生拥有自由和爱,是我全部的野心 1. 环境准备 %pip install diffusers from huggingface_hub impo ...
- 深入理解Prometheus: Kubernetes环境中的监控实践
在这篇文章中,我们深入探讨了Prometheus在Kubernetes环境中的应用,涵盖了从基础概念到实战应用的全面介绍.内容包括Prometheus的架构.数据模型.PromQL查询语言,以及在Ku ...
- 【Hive报错】java.lang.NoSuchMethodError(com.facebook.fb303.FacebookService$Client.sendBaseOneway
Hive2.3版本 Hadoop2.7版本 执行hive命令报错: 报错内容: CONSOLE#21/03/24 17:32:54 ERROR ql.Driver: FAILED: Hive Inte ...
- mobaXterm 查看密码
参考:MobaXterm中密码的查看方式 检查是否把密码保存到了注册表中 然后从https://github.com/HyperSine/how-does-MobaXterm-encrypt-pass ...
- Quartus Ⅱ调用FIFO IP核方法实现求和(Mega Wizard)
摘要:本次实验学习记录主题为"FIFO_IP核实现算术求和",主要内容是上位机通过串口向FPGA发送一定规格的数字矩阵,FPGA对矩阵处理,按规定逻辑实现求和运算,将结果返回串口转 ...