0%

数据可视化可以通过将数据图形化的方式帮助更加直观的理解和分析统计数据。在近些年,经常看到一些公司所出的用户报告或是blog中采用手绘风格的数据可视化使得其更加内容和风格都亲切十足。本文罗列了一些常用的数据可视化工具及适用图表。

工具 rough + draw.io matplotlib.pyplot.xkcd chart.xkcd & cutecharts instad.io
适用范围 适用于已有的draw.io图表,svg图表或需直接在画布上画图的图表 适用于数据可视化图表,尤其是通过matplotlib或者seaborn所生成的图表。可内嵌到jupyter lab/notebook中 适用于有交互需求的数据可视化图表。可内嵌到网页或jupyter lab/notebook中 适用于已有的svg或者spreadsheet的图表。可将其直接转化为手绘风
适用图表 适用于任意图表,尤其适合直接做图的图表如流程图,类图或时间轴图等 适用于大多数数据可视化图表,如线图,柱图,饼图,等高图等 仅支持'bar', 'line', 'pie', 'radar', 'scatter' 适用于任意图表,只要求输入格式为DOM的SVG或PDF图表
阅读全文 »

在衡量深度学习的推理速度时,人们经常用深度模型的参数大小(#Param)和计算量(FLOPS)作为参考。然而简单的通过将Conv换成DepthWise Conv或是其他结构去减少模型大小和计算量往往发现并不能有效的提升模型部署时速度。

本文将对衡量深度学习模型大小的一些常用指标,如计算量、参数量、访存量、内存占用等进行探讨,分析这些指标对模型部署推理的影响,尤其是计算量与访存量对模型推理速度的影响,并给出在不同硬件架构下设计网络结构的一些建议。减少网络设计与部署之间的 gap,更高效的完成网络设计与部署工作。

本文转载自田子宸的知乎专栏

阅读全文 »

一些计算机视觉任务会依赖图像的几何关系,比如相机定位,三维重建等等。一种方法用于求解图像的几何关系是通过图像局部特征的相关匹配来求解。图像的局部特征则是从图像局部区域中抽取的特征,包括边缘、角点、线、曲线和特别属性的区域等。一般来说,图像的局部特征包含两个部分,局部特征点的位置,局部特征的描述符。在一方面上,描述符可分为基于人工的特征符和基于学习的特征符。

文本将关注于在特征点已知的情况下,如何通过学习去生成描述符去描述局部区域(Patch)的。相较于网络架构,本文主要关注于不同论文的数据处理和学习策略。

阅读全文 »

python调用C++/CUDA有不少的方法,如boost.python, cython, pybind11等。其中,pybind11是一个轻量级的仅标头的库。由于pybind11的易用性,pybind11被很多库用于于创建现有C++/CUDA代码的Python绑定,比如pytorch,tvm等。此外,由于Python的缓冲区协议可以公开自定义数据类型的内部存储,python的矩阵类型(如numpy.ndarry,torch.Tensor)可以快速转化到C++中对应矩阵类型(如Eigen,cv::Mat,vector等),不须额外的复制操作。本篇文章将通过一个数列求和的例子来讲解如何使用pybind11来将C++/CUDA代码进行Python绑定。

在通过C++和CUDA实现数列求和,在将其绑定为python函数,并在python中调用对应函数,验证结果。

阅读全文 »

简单易用与运行效率低是贴在python身上的两大标签。开发人员一方面对其简单的语法和丰富的库爱不释手,一方面又对其由于动态编译和解释执行带来的较低的运行效率和GIL带来的多线程难扩展的情况深恶痛绝。为了解决这些python中的固有问题,一些解释器如cython尝试对一些函数提前编译进而提高执行效率。但绝大多数的解释器或库函数的语法非常不pythonic,而且也不能够做到即插即用。本文简单介绍了如何通过numba库,为python函数装饰器的方式来对python函数进行加速。为读者提供一中,简单易用,灵活编译方式去解决python的固有问题,提高python代码的执行效率。

阅读全文 »

TensorRT(TRT)是NVIDIA推出的一个高性能的深度学习推理框架,可以让深度学习模型在NVIDIA GPU上实现低延迟,高吞吐量的部署。主流框架的模型可以通过转换为TensorRT在NVIDIA GPU进而达到极大地提速。然而,由于TensorRT并不支持常见的图片数据类型uint8,这使得往往需要在cpu上进行图片数据预处理,转换为其所支持的float并传入到gpu模型输入。当图片较大时,数据在cpu上的处理和传递时间较慢。本文将介绍如何通过cuda中的npp库来加速这一过程。

阅读全文 »

复杂的编译环境配置,指针操作和debug过程,CUDA编程对于初学者来说总是望而生畏。本文旨在通过使用python的numba库,快速学习和了解CUDA多线程高并发的编程思路。

阅读全文 »