MLC

前段时间学习了 mlc.ai 提供的机器学习编译的相关课程,本文简单做个总结,回顾下机器学习编译的基本思想。 机器学习编译基本思想 什么是机器学习编译 mlc.ai 中对机器学习编译的定义如下: 机器学习编译 (machine learning compilation, MLC) 是指,将机器学习算法从开发阶段,通过变换和优化算法,使其变成部署状态。 开发形式是指我们在开发机器学习模型时使用的形式。典型的开发形式包括用 Paddle、PyTorch、TensorFlow...

22 minute read

FuseOps for tvm

概述 在深度学习领域,想必大家对算子融合的概念都不陌生,算子融合通常是指将多个算子融合成单个kernel,从而避免了中间结果的访存和kernel launch的开销。本章主要介绍TVM中的算子融合,也称之为自动fusion。本文以 tvm v0.10.0 代码为例进行解读。 算子类型 在TVM中对算子进行了分类,代码在op_attr_types.h中: /*! \brief operator pattern used in graph...

32 minute read

几何变换

几何变换 在阅读yolov3数据集处理图像增强代码时,发现了一段有意思的实现,写下博客记录下几种几何变换推导及利用opencv来可视化效果。 从网络上摘抄下仿射变换和透视变换来强化下印象: 仿射变换 仿射变换是二维坐标到二维坐标的线性变换,保持了二维图形的”平直性”(直线经过变换后仍是直线)和”平行性”(二维图形之间的相对位置关系保持不变,平行线依然是平行线,且直线上点的位置顺序不变)。任意的仿射变换都能表示为 \[\begin{bmatrix}x' \\y' \\ 1\end{bmatrix}=\begin{bmatrix}m11& m12& m13 \\ m21 & m22...

7 minute read

Getting Started with LLVM Core Libraries

Getting Started with LLVM Core Libraries Clang clang的基本用法和gcc基本一致,但也有自己独特的地方,例如 查看完整编译链接信息: clang hello.c -### // hello.c #inlcude...

3 minute read

GRU

LSTM和GRU相对于RNN来说多出了gate,能够有效的避免Short-term Memory的问题。 LSTM有三个门:forget gate, input gate 和 output gate, 还有一个 cell state GRU 简要记录下GRU的基本计算过程,gru算子的理解可以参考最后的References GRU有两个门:reset...

1 minute read

VIM

VIM sudo apt-get install vim # reference: https://github.com/ycm-core/YouCompleteMe/wiki/Building-Vim-from-source # deps sudo apt install libncurses5-dev libgnome2-dev...

3 minute read

Softwares

Ubuntu18.04 Softwares Develop nvidia-drives sudo apt --purge autoremove nvidia* sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt update...

10 minute read