1 numba介绍

numba是一个用于编译Python数组和数值计算函数的编译器,这个编译器能够大幅提高直接使用Python编写的函数的运算速度。

numba使用LLVM编译器架构将纯Python代码生成优化过的机器码,通过一些添加简单的注解,将面向数组和使用大量数学的python代码优化到与c,c++和Fortran类似的性能,而无需改变Python的解释器。numba的编译方式如下图所示:

为什么选择numba?

选择Numbade 原因很简单,不需要为了获得一些的加速来改变代码,我们只需要添加一个装饰器到Python函数中即可完成加速,而且加速效果与cython代码相当。

2.numba的使用方法

numba对代码进行加速时,给要优化的函数加上@jit优化器即可。使用jit的时候可以让numba来决定什么时候以及怎么做优化。如下简单的例子所示:

from numba import jit
@jit
def f(x, y):return x + y

这段代码的计算在被调用是第一次执行,numba将在调用期间推断参数类型,然后基于这个信息生成优化后的代码。numba也能够基于输入的类型编译生成特定的代码。例如,对于上面的代码,传入整数和浮点数作为参数将会生成不同的代码:

Numba编译的函数可以调用其他编译函数。 例如:

@jit
def hypot(x, y):return math.sqrt(square(x) + square(y))

我们现在看一个例子:

from numba import jit
import time
@jit
def foo():x = []for a in range(100000000):x.append(a)def foo_withoutfit():y = []  for b in range(100000000):y.append(b)

现在我们定义相同的方法,实现的功能也是一样的,一个是利用numba进行加速,一个没有加速,我们看下他们的运行时间:

从结果中可以看出,当我们使用了numba进行加速,速度提升了10倍以上。


总结

  1. numba是进行python加速的工具包
  2. 在要进行加速的python函数中添加装饰器@jit即可实现代码的加速

智慧交通day01-算法库01:numba相关推荐

  1. 智慧交通day01-算法库03:cv.dnn

    1.DNN模块 1.1. 模块简介 OpenCV中的深度学习模块(DNN)只提供了推理功能,不涉及模型的训练,支持多种深度学习框架,比如TensorFlow,Caffe,Torch和Darknet. ...

  2. 智慧交通day01-算法库02:imutils

    1.imutils功能简介 imutils是在OPenCV基础上的一个封装,达到更为简结的调用OPenCV接口的目的,它可以轻松的实现图像的平移,旋转,缩放,骨架化等一系列的操作. 安装方法: pip ...

  3. 基于Aidlux平台的智慧交通AI安全算法实战

    一. 通常来说,智慧交通行业主要是对交通场景内的行人,机动车,非机动车进行识别分析. 行人识别分析包括对行人的姿态,方向,外观,以及基于行人的交通事件识别分析,(行人闯红灯等). 机动车识别分析包括对 ...

  4. AidLux智慧交通实战-车辆检测AI对抗攻防算法实现

    完整项目代码:https://github.com/yangdadage/AidLux_intelligent_transportation/tree/master 课件及老师示例代码可关注AidLu ...

  5. 实现车辆检测+安全算法,玩转智慧交通AI应用!AidLux实战训练营第二期圆满收官

    10月下旬,我们联合AI行业大V江大白举办了以智慧安防为主题的AI训练营. 在众多开发者的肯定与呼声之中,我们又在11月下旬开展了新一期的AI实战训练营! 并邀请了国内大厂AI图像资深算法工程师Roc ...

  6. 智慧交通day00-项目简介

    汽车的日益普及在给人们带来极大便利的同时,也导致了拥堵的交通路况,以及更为频发的交通事故.智能交通技术已成为推动现代技术交通技术发展的重要力量,智能交通不仅能够提供实时的交通路况信息,帮助交通管理者规 ...

  7. 智慧交通:地铁站 3D 可视化,车路协同赋能科学出行

    自动体温检测.刷脸过闸.智慧屏查路线--颇具科技感的"智慧地铁"提高了人们出行的获得感.以智能化方式实现生产域.管理域.服务域的联动,让地铁站管理变得智慧. 通过可视化.数字化.智 ...

  8. 高德智慧交通地图空间可视化SDK设计与实现

    一.背景 地图空间可视化作为高德智慧交通前端业务中最重要的功能之一,承担着城市交通大脑.全境智能大屏等业务中大量的地图渲染需求.作为向用户展示交通数据的窗口,我们需要展现省.市.区.商圈.自定义区域多 ...

  9. 零基础边缘端智慧交通训练营 | Lesson 4

    5个课时实现车辆检测+安全算法,玩转智慧交通AI应用! 欢迎大家来到AidLux零基础边缘端智慧交通训练营~ 在第三节课中,我们学习了在云服务器上使用Yolov5算法,训练了一个车辆检测模型并进行优化 ...

最新文章

  1. linux下抓包代码阿里云,10.10 linux下抓包
  2. 透视宇宙:大约138亿年前,宇宙真的发生过大爆炸吗?
  3. SSM框架下结合 log4j、slf4j打印日志
  4. C++ primer 笔记 (一)
  5. win 7 系统过期处理办法
  6. 教育部要求:作业、校外培训、游戏要为学生睡眠让路
  7. AcWing算法提高课 Level-3 第三章 图论
  8. spark中flatMap函数用法
  9. Collection和Collections区别
  10. VS 2019 for Mac 第 3 个预览版发布,新编辑器、Xamarin 开发改进
  11. (zt)ACE中的Proactor介绍和应用实例
  12. mysql数据库root密码在哪个文件中_mysql数据库的root密码放在什么位置?
  13. 软件分析与设计习题集
  14. centos双网卡不能同时工作解决
  15. 服务器宠物系统,4月27日服务器公告:宠物训练师等级系统开启
  16. 城市信息化重要载体“无线城市”
  17. CSDN - CSDN27题解
  18. 人才太缺!神州优车明修开放平台暗圈AI人才(附自动驾驶思路)
  19. Request(HTTP请求对象)的笔记和底层原理
  20. flink的广播、累加、缓存

热门文章

  1. 深度学习之卷积神经网络 AlexNet
  2. 线性判别结合源码分析LDA原理
  3. 机器学习之决策树与随机森林
  4. dos攻击命令_Kali Linux系列之拒绝服务攻击(DOS)实战(上)
  5. 当前系统时间与服务器时间,操作系统时间和服务器时间
  6. [JSOI2007]建筑抢修 (贪心)
  7. 受保护的属性无法直接读取
  8. [LeetCode][Python][C#]刷题记录 26. 删除排序数组中的重复项
  9. discuz MVC结构分析
  10. #define typedef 区别