智慧交通day01-算法库01:numba
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倍以上。
总结
- numba是进行python加速的工具包
- 在要进行加速的python函数中添加装饰器@jit即可实现代码的加速
智慧交通day01-算法库01:numba相关推荐
- 智慧交通day01-算法库03:cv.dnn
1.DNN模块 1.1. 模块简介 OpenCV中的深度学习模块(DNN)只提供了推理功能,不涉及模型的训练,支持多种深度学习框架,比如TensorFlow,Caffe,Torch和Darknet. ...
- 智慧交通day01-算法库02:imutils
1.imutils功能简介 imutils是在OPenCV基础上的一个封装,达到更为简结的调用OPenCV接口的目的,它可以轻松的实现图像的平移,旋转,缩放,骨架化等一系列的操作. 安装方法: pip ...
- 基于Aidlux平台的智慧交通AI安全算法实战
一. 通常来说,智慧交通行业主要是对交通场景内的行人,机动车,非机动车进行识别分析. 行人识别分析包括对行人的姿态,方向,外观,以及基于行人的交通事件识别分析,(行人闯红灯等). 机动车识别分析包括对 ...
- AidLux智慧交通实战-车辆检测AI对抗攻防算法实现
完整项目代码:https://github.com/yangdadage/AidLux_intelligent_transportation/tree/master 课件及老师示例代码可关注AidLu ...
- 实现车辆检测+安全算法,玩转智慧交通AI应用!AidLux实战训练营第二期圆满收官
10月下旬,我们联合AI行业大V江大白举办了以智慧安防为主题的AI训练营. 在众多开发者的肯定与呼声之中,我们又在11月下旬开展了新一期的AI实战训练营! 并邀请了国内大厂AI图像资深算法工程师Roc ...
- 智慧交通day00-项目简介
汽车的日益普及在给人们带来极大便利的同时,也导致了拥堵的交通路况,以及更为频发的交通事故.智能交通技术已成为推动现代技术交通技术发展的重要力量,智能交通不仅能够提供实时的交通路况信息,帮助交通管理者规 ...
- 智慧交通:地铁站 3D 可视化,车路协同赋能科学出行
自动体温检测.刷脸过闸.智慧屏查路线--颇具科技感的"智慧地铁"提高了人们出行的获得感.以智能化方式实现生产域.管理域.服务域的联动,让地铁站管理变得智慧. 通过可视化.数字化.智 ...
- 高德智慧交通地图空间可视化SDK设计与实现
一.背景 地图空间可视化作为高德智慧交通前端业务中最重要的功能之一,承担着城市交通大脑.全境智能大屏等业务中大量的地图渲染需求.作为向用户展示交通数据的窗口,我们需要展现省.市.区.商圈.自定义区域多 ...
- 零基础边缘端智慧交通训练营 | Lesson 4
5个课时实现车辆检测+安全算法,玩转智慧交通AI应用! 欢迎大家来到AidLux零基础边缘端智慧交通训练营~ 在第三节课中,我们学习了在云服务器上使用Yolov5算法,训练了一个车辆检测模型并进行优化 ...
最新文章
- linux下抓包代码阿里云,10.10 linux下抓包
- 透视宇宙:大约138亿年前,宇宙真的发生过大爆炸吗?
- SSM框架下结合 log4j、slf4j打印日志
- C++ primer 笔记 (一)
- win 7 系统过期处理办法
- 教育部要求:作业、校外培训、游戏要为学生睡眠让路
- AcWing算法提高课 Level-3 第三章 图论
- spark中flatMap函数用法
- Collection和Collections区别
- VS 2019 for Mac 第 3 个预览版发布,新编辑器、Xamarin 开发改进
- (zt)ACE中的Proactor介绍和应用实例
- mysql数据库root密码在哪个文件中_mysql数据库的root密码放在什么位置?
- 软件分析与设计习题集
- centos双网卡不能同时工作解决
- 服务器宠物系统,4月27日服务器公告:宠物训练师等级系统开启
- 城市信息化重要载体“无线城市”
- CSDN - CSDN27题解
- 人才太缺!神州优车明修开放平台暗圈AI人才(附自动驾驶思路)
- Request(HTTP请求对象)的笔记和底层原理
- flink的广播、累加、缓存
热门文章
- 深度学习之卷积神经网络 AlexNet
- 线性判别结合源码分析LDA原理
- 机器学习之决策树与随机森林
- dos攻击命令_Kali Linux系列之拒绝服务攻击(DOS)实战(上)
- 当前系统时间与服务器时间,操作系统时间和服务器时间
- [JSOI2007]建筑抢修 (贪心)
- 受保护的属性无法直接读取
- [LeetCode][Python][C#]刷题记录 26. 删除排序数组中的重复项
- discuz MVC结构分析
- #define typedef 区别