个人学习笔记

YOLO网络

5 分钟阅读

概述 概述 官网:YOLO: Real-Time Object Detection 论文地址:YOLO v1 2016 、YOLO v2 2017、YOLO v3 2018、YOLO v4 2020、YOLO v5 待更新

BERT

3 分钟阅读

概述 概述 BERT: Bidirectional Encoder Representation from Transformers 论文地址[2019]:BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding 对应github代码:github-bert BERT分为 两个阶段: Pre-training:利用无标记语料预训练模型 Fine-tuning: 使用预训练的模型,对已经标记的语料根据实际的任务进行训练

Transformer

4 分钟阅读

概述 概述 论文地址[2017]:Attention Is All You Need 核心运算:Attention(Q,K,V)=softmax(QKTdk)V 描述:查询(Query)到键值(Key-Value)的映射

ONNX

5 分钟阅读

概述 概述 ONNX,Open Neural Network Exchange。由于神经网络架构很多,如caffe、tensorflow、pytorch、mxnet等等,模型结构各式各样,onnx旨在将模型结构统一起来。 官方代码:ONNX 算子操作:Operators 环境要求:pip install onnx onnxruntime onnx-simplifier netron

常见神经网络特征

2 分钟阅读

VGG16 VGG16 13层卷积+3层全连接,穿插pooling和relu 其中卷积的kernel均采用3x3

统计距离

5 分钟阅读

熵 信息量 信息熵 熵 Entropy, [ˈentrəpi], 熵,无序状态 信息量 信息不确定性越大,信息量越大。 假定X是随机事件集合,其中 p(x0) 表示事件x0的概率,那么事件x0的信息量定义为 h(x0)=log2p(x0)。 信息熵 [H(X) = -\sum^{n}_{i=1}{p(x_i)log_2p(x_i)}] 信息熵用来衡量事物的不确定性,信息熵越大,事物越具有不确定性。

浮点型存储格式

2 分钟阅读

FP32 FP32 float共32bit:1bit符号位,8bit指数位,23bit底数位。如下表示: S E8 M23 浮点与二进制转换公式如下: Y=(1)s×2e×mm=1.M23e=E8127

RNN/LSTM/GRU

10 分钟阅读

RNN RNN RNN:Recurrent Neural Networks,循环神经网络,能够应用于空间或时间先后相关的场景,比如文字解析、语音识别。 RNN模型结构简单描述,如下图: 其中X0、X1、……、Xt,可以理解成多个输入,或者对单个输入拆分成的多个输入,比如一张图片的多个字符拆分、语音的拆分等等;h0、h1、…、ht可以理解成多个输出,通常也可能最终被concat到一起,做为一个输入。 上图是单向的,也就是h1会受h0的影响,h2会受h1、h0的影响,…,但反过来不会。RNN网络也会有双向的情况,使前后互相影响。

Macbook操作

1 分钟阅读

快捷键 快捷键 文本 文件 其他 Command-C 拷贝Command-V 粘贴Command-X 剪切Command-Z 撤销Command-A 全选command-S 保存Command-F 查找 Command <- 删除文件Command c 拷贝文件Command v 粘贴文件Command option v 移动文件 Command Shift 4 选取截图Command Shift 3 全屏截图Control 空格 切换输入法

时间复杂度

少于 1 分钟阅读

概述 概述 时间复杂度通常用大O符号表示,不考虑低阶项和系数,主要考察算法中元素个数N趋于无穷时的情况。 另外时间复杂度也有最好情况表示Ω,和平均情况表示Θ。大O是最坏情况表示。

SSD网络

4 分钟阅读

概述 概述 目标检测目前主要有种方法: two-stage: R-CNN和Faster R-CNN系列为代表,先生成region proposal(预选框),再经过CNN网络进行分类 one-stage: ssd和yolo为代表,边提取特征边分类 论文地址[2016]:SSD: Single Shot MultiBox Detector

quantization int8

6 分钟阅读

算法 8-bit 与float转换 threshold per-axis 与 per-tensor 算法 8-bit 与float转换 [real_value = (int8_value - zero_point)\times scale] 简写为:r=S(qZ) 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×128thresholdx,Y=y×thresholdy128 per-axis 与 per-tensor per-axis,表示某个维度每一片都有一个scale和zero_point,比如per-channel表示每个channel都有一个scale和zero_point per-tensor,表示整个tensor用一个scale和zero_point