个人学习笔记

quantization int8

6 分钟阅读

算法 8-bit 与float转换 threshold per-axis 与 per-tensor 算法 8-bit 与float转换 [real_value = (int8_value - zero_point)\times scale] 简写为:$ r = S(q-Z) $ int8_value的weight范围是[-127, 127],zero_point为0;activations/inputs范围是[-128, 127],zero_point范围是[-128, 127] threshold threshold理解为某个tensor的元素最大值,则: [Y = F(X) \text{(float运算)} => y = f(x) \text{(int8运算)}] 其中 $ x = X \times \frac{128}{threshold_x}, Y = y \times \frac{threshold_y}{128} $ per-axis 与 per-tensor per-axis,表示某个维度每一片都有一个scale和zero_point,比如per-channel表示每个channel都有一个scale和zero_point per-tensor,表示整个tensor用一个scale和zero_point

常见算子操作

14 分钟阅读

激活函数 Relu LeakyRelu 激活函数 Relu [f(x) = \begin{cases} x,\quad & if & x \ge 0 0,\quad & if & x \lt 0 \end{cases}] LeakyRelu [f(x) = \begin{cases} x,\quad & if & x \ge 0 x \times negative_slope,\quad & if &x \lt 0 \end{cases}]

Numpy

6 分钟阅读

概述 ndarray 概述 Numpy, Numerical Python, 读作Num Pie 导入import numpy as np ndarray N维数据对象,成员: data,内存地址 shape,各个维度大小的元组 dtype,元素类型 size,元素个数 ndim,维度的数量 strides,各个维度步进字节大小的元组 T,ndarray,对象的转置 flags, 各种属性标志 其他

python

9 分钟阅读

执行方式 注释 执行方式 直接执行,python test.py 交互执行,ipython 注释 #!/usr/bin/python3 # 单行注释 print("hello,world") ''' 多行注释 用\实现多行语句,[]{}()中不需要\ ''' a = 1 + 2 + \ 3 + 4 b = ['a','b', 'c','d']

python调试

1 分钟阅读

python调试 方式一:import pdb python调试 方式一:import pdb import pdb pdb.set_trace() #运行到这里会自动暂停

Markdown

少于 1 分钟阅读

特殊符号 Latex公式 Mermaid绘图 Jekyll-spaceship 特殊符号 上标:2<sup>n</sup>,效果2n 小标:log<sub>n</sub>,效果logn HTML中的特殊符号 Latex公式 latex使用 Cmd Markdown公式指导手册 Mermaid绘图 Markdown中使用mermaid画流程图 Mermaid Jekyll-spaceship Jekyll-spaceship

CMAKE与Ninja

少于 1 分钟阅读

简介 简介 Ninja原意是忍者,Google在编译chrome项目时本来用make方式,但是非常费时间;于是实现Ninja,取代make,加快编译构建。 Ninja官网:Ninja

Linux Event Tracing

3 分钟阅读

Tracepoints添加 1. 添加头文件 Tracepoints添加 参考 Tracepoints 1. 添加头文件 include/trace/events/sample.h #undef TRACE_SYSTEM #define TRACE_SYSTEM sample #if !defined(_TRACE_SUBSYS_H) || defined(TRACE_HEADER_MULTI_READ) #define _TRACE_SUBSYS_H #include <linux/tracepoint.h> DECLARE_TRACE(sample_event, TP_PROTO(int firstarg, struct task_struct *p), TP_ARGS(firstarg, p)); #endif /* _TRACE_SUBSYS_H */ /* This part must be outside protection */ #include <trace/define_trace.h>

卷积运算

7 分钟阅读

基本概念 基本概念 基本卷积形式如下(NHWC格式): 输入为[1,32,32,3],filter为[10, 5, 5, 3],输出为[1, 28, 28, 10]

tensorflow:添加新OP和新设备

13 分钟阅读

REGISTER_OP,注册一个OP,其实也是声明一个OP REGISTER_KERNEL_BUILDER,注册一个Kernel,其实就是对OP的实现 REGISTER_LOCAL_DEVICE_FACTORY,添加设备工厂

vim操作积累

少于 1 分钟阅读

vim控制 vim控制 dd 剪切光标所在行 yy 拷贝光标所在行 p 粘贴到光标所在行 u 撤销上一次操作 ctrl+u 恢复撤销

FlatBuffers反射

9 分钟阅读

概述 概述 基本有三种方式: unpack和pack,可以对某个成员进行操作,可以在多个flatbuffers局部拷贝的时候用到。 parser方式,在做成员细致的修正的时候可以用到 reflection,不推荐使用。