Skip to content

Commit

Permalink
README
Browse files Browse the repository at this point in the history
  • Loading branch information
f4396 committed Jun 9, 2022
1 parent 5965ee3 commit 15ad53d
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 146 deletions.
117 changes: 27 additions & 90 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,6 @@

#### 🍃 Python读取图片

- 🐾 [计算图片均值](train/preprocess/mean_cal.md)
- 🐾 [opencv读取数据--segmentation fault](train/preprocess/sefgmentationfault.md)
- 🐾 [直方图处理](train/preprocess/histogram.md)
- 🐾 [python读取图片的几种方式](train/preprocess/open_image.md)
Expand Down Expand Up @@ -309,29 +308,10 @@

#### 🍃 Anomaly Detection

- 综述与研究进展--[1](https://blog.csdn.net/qq_36560894/article/details/120698709)
- [CFLOW-AD: Real-Time Unsupervised Anomaly Detection with Localization via Conditional Normalizing Flows]()
- [PaDiM](train/anomalydetection/padim.md)
- [综述与研究进展](https://blog.csdn.net/qq_36560894/article/details/120698709)


### 🍬 损失函数

- [距离计算方法总结](train/loss/distance.md) (2022-01-06)

- 🐾 [交叉墒](train/loss/entropy.md)
- 🐾 [Pytorch的损失函数](train/loss/losses_pytorch.md)
- [三个相关系数](https://www.cnblogs.com/yjd_hycf_space/p/11537153.html)
- [机器学习-距离度量](https://blog.csdn.net/xjp_xujiping/article/details/108576496)|[2](https://zhuanlan.zhihu.com/p/46626607)
- [方差](https://blog.csdn.net/lijinxiu123/article/details/52450858)|[2](https://geek.digiasset.org/pages/mathbasic/correlation-co-variances-variance-coeffi_21Mar07115144053588/#%E4%B8%89%E5%8D%8F%E6%96%B9%E5%B7%AE)|[3](https://zhuanlan.zhihu.com/p/86181679)|[4](https://zhuanlan.zhihu.com/p/68967565)|[5](https://blog.csdn.net/lilong117194/article/details/78399568)
- Lovasz-Softmax Loss
- Exponential Logarithmic loss
- Focal Loss + Dice Loss
- BCE + Dice Loss
- Generalized Dice loss
- Tversky Loss
- IOU Loss
- Dice Loss
- Focal Loss
### 🍬 损失函数:[详细见AICore中的loss](https://github.com/FelixFu520/AICore/blob/main/dao/losses/__init__.py)

### 🍬 优化器

Expand All @@ -346,9 +326,8 @@

### 🍬 评价指标

- 🐾 [语义分割评价指标](train/assessment/seg_metris.md)
- 🐾 [mAP](train/assessment/map.md) [code](https://github.com/TD-4/mAP)
- 🐾 IOU
- 🐾 [分割评价指标](train/assessment/seg_metris.md)
- 🐾 [目标检测评价指标-mAP](train/assessment/map.md) [code](https://github.com/TD-4/mAP)

### 🍬 网络可视化

Expand All @@ -361,40 +340,24 @@

#### 🍃网络结构

- 🐾 [网络结构显示工具torchsuammary](https://github.com/sksq96/pytorch-summary) 🐾 [debug](train/visual/torchsummary.md)
- 🐾 [网络结构显示工具torchsuammary](https://github.com/sksq96/pytorch-summary) | [debug](train/visual/torchsummary.md)
- 🐾 [网络结构显示工具Netron](https://github.com/lutzroeder/netron)

### 🍬 梯度消失与爆炸/欠拟合[🐾](train/fit/grad.md)

1. 预训练加微调
2. 🐾 [权重初始化](train/fit/init.md)
3. 🐾 梯度剪切、权重正则(针对梯度爆炸)
4. 🐾 使用不同的[激活函数](train/fit/activation.md)
5. 🐾 使用[batchnorm](train/fit/batchnorm.md)
6. 🐾 使用残差结构
7. 🐾 使用LSTM网络
### 🍬 [梯度消失与爆炸](train/fit/grad.md)


### 🍬 Tips

- 🐾 [深度学习训练流程](train/tips/train_flow.md)
- 🐾 [提高性能的4个角度](train/tips/improve_performence.md)
- 🐾 [固定种子](train/tips/random_seed.md)
- 🐾 [混合精度训练](train/tips/apex.md), 🐾 [apex](https://github.com/NVIDIA/apex) 🐾 [apex+tensorcore+ngc](https://developer.nvidia.com/automatic-mixed-precision)
- 🐾 [TensorCore](train/tips/tensorcore.md)
- 🐾 [DeepLearningExamples NVIDIA-各种加速和demo](https://github.com/NVIDIA/DeepLearningExamples)
- 🐾 [深度学习训练流程](train/tips/train_flow.md)
- 🐾 [提高性能的4个角度](train/tips/improve_performence.md) | [固定种子](train/tips/random_seed.md)
- 🐾 [混合精度训练](train/tips/apex.md) | [apex](https://github.com/NVIDIA/apex) | [apex+tensorcore+ngc](https://developer.nvidia.com/automatic-mixed-precision)
- 🐾 [TensorCore](train/tips/tensorcore.md) | [DeepLearningExamples NVIDIA-各种加速和demo](https://github.com/NVIDIA/DeepLearningExamples)
- 🐾 [学习率调整策略](train/tips/scheduler.md)
- 🐾 [学习率与batchsize](train/tips/lr_batchsize.md)
- 🐾 [学习率与batchsize](train/tips/lr_batchsize.md)

## 3⃣️测试模型--train e↔︎test e ↓

### 🍬 过拟合[🐾](train/overfitting/introduce_overfitting.md)

- 🐾 [正则化](train/overfitting/regularization.md)
- 🐾 early stop
- 🐾 数据增强
- 🐾 dropout
- ...
### 🍬 [欠拟合&过拟合](train/overfitting/introduce_overfitting.md)

## 4⃣️ 微调/迁移学习

Expand All @@ -405,40 +368,26 @@

### 🍬 压缩

- 🐾 [序列化](infer/serialization/introduce.md)
- [yaml](infer/serialization/yaml.md)
- [protobuf](infer/serialization/protobuf.md)
- [grpc](infer/serialization/grpc.md)
- 🐾 [序列化](infer/serialization/introduce.md) -{[yaml](infer/serialization/yaml.md)|[protobuf](infer/serialization/protobuf.md)|[grpc](infer/serialization/grpc.md)}

### 🍬 数据后处理

### 🍬 部署框架 [🐾](infer/README.md)
### 🍬 [部署框架 ](infer/README.md)

#### 🍃ONNX

- 🐾 [ONNX介绍](infer/onnx/introduce.md)
- 🐾 [ONNX API Python](infer/onnx/python_api.md) | [ONNX Tutorials](https://github.com/TD-4/onnx-tutorial)
- 🐾 [ONNX支持框架有哪些](https://onnx.ai/supported-tools.html)
- 🐾 [ONNX介绍](infer/onnx/introduce.md) | [ONNX Tutorials](https://github.com/AICoreRef/onnx-tutorial)| [ONNX支持框架有哪些](https://onnx.ai/supported-tools.html)

#### 🍃 TVM

- [介绍](infer/tvm/introduce.md)
- [编译安装](infer/tvm/install.md)
- [TVM架构设计](infer/tvm/arch.md)
- [TVM部署](infer/tvm/TVMB.md)
- [TVM原理](infer/tvm/TVMY.md)
- [TVM源码学习](infer/tvm/src.md)
- [Relay学习](infer/tvm/relay.md)`TODO`
- [学习笔记-代码](infer/tvm/pytorch2onnx2tvm.md) | [Github](https://github.com/TD-4/pytorch2onnx2tvm) | [DockerHub:`dockerhub:docker pull fusimeng/project:tvm-deploy-cpp`]
- 🐾 [介绍](infer/tvm/introduce.md)|[编译安装](infer/tvm/install.md)|[TVM架构设计](infer/tvm/arch.md)|[TVM部署](infer/tvm/TVMB.md)|[TVM原理](infer/tvm/TVMY.md)|[TVM源码学习](infer/tvm/src.md)|[Relay学习](infer/tvm/relay.md)`TODO`
- 🐾 [学习笔记-代码1](infer/tvm/pytorch2onnx2tvm.md) | [代码2](https://github.com/AICoreRef/pytorch2onnx2tvm)

#### 🍃TensorRT

- [了解什么是TensorRT?](infer/tensorrt/Introduce.md)
- [案例和讲解(C++)](infer/tensorrt/tensorrtcpp.md)
- [使用TensorRT遇到的问题](infer/tensorrt/problem.md)
- [入门案例代码解析(python)](infer/tensorrt/Code.md)
- [自己收集的案例1(python)](https://github.com/TD-4/TensorRT) | [2(python)](https://github.com/TD-4/TensorRT2)
- [TensorRT8.0API学习](infer/tensorrt/api.md)
- 🐾 [了解什么是TensorRT?](infer/tensorrt/Introduce.md)
- 🐾 [案例和讲解(C++)](infer/tensorrt/tensorrtcpp.md)| [入门案例代码解析(python)-1](infer/tensorrt/Code.md) |[(python)-2](https://github.com/AICoreRef/TensorRT) | [(python)-3](https://github.com/AICoreRef/TensorRT2)
- 🐾 [TensorRT8.0API学习](infer/tensorrt/api.md)

### 🍬 网站部署-BS

Expand All @@ -451,31 +400,19 @@
### 🍬 嵌入式设备

- 🐾 [Nano](https://github.com/TD-4/Nano_DLI)
- 🐾 树莓派
- [安装系统](infer/embedded/pi_install.md)
- 🐾 树莓派 : [安装系统](infer/embedded/pi_install.md)

### 🍬 视频处理与流媒体

- [协议](infer/video/protocal.md)

#### 🍃 基本概念

- [视频基本概念与多媒体概念](infer/video/introduce1.md)
- [视频编解码与GPU](infer/video/gpu_codec.md)

#### 🍃 视频编解码理论基础

- [第一章 介绍](infer/VideoCodecTheoryBasis/notes/introduce.md)
- [第二章 数字视频](infer/VideoCodecTheoryBasis/notes/digitalvideo.md)
- [第三章 信息论基础](infer/VideoCodecTheoryBasis/notes/base.md)
- [第四章 视频编解码理论基础](infer/VideoCodecTheoryBasis/notes/codec.md)
- 🐾 [协议](infer/video/protocal.md)

#### 🍃 信息论与编码基础(雷菁)
- 🐾 [视频基本概念与多媒体概念](infer/video/introduce1.md)
- 🐾 [视频编解码与GPU](infer/video/gpu_codec.md)

* [第一章 绪论](infer/VideoCodecTheoryBasis/info/introduce.md)
* [第二章 离散信源](infer/VideoCodecTheoryBasis/info/source.md)
* [第三章 离散信道](infer/VideoCodecTheoryBasis/info/xindao.md)
#### 🍃 [视频编解码学习](https://www.cnblogs.com/xkfz007/archive/2012/07/28/2613690.html)

### 🍬 DeepStream
#### 🍃 DeepStream

- [DeepStream介绍](infer/deepstream/introduce.md)
- 🐾 [DeepStream介绍](infer/deepstream/introduce.md)
15 changes: 1 addition & 14 deletions infer/serialization/introduce.md
Original file line number Diff line number Diff line change
Expand Up @@ -205,9 +205,7 @@ StackOverflow上MessagePack的原作者也给出了自己的看法,客观的

- **通用:协议是标准的,不同的第三方软件都可以相互进行序列化和反序列化,比如使用cjson序列化后的数据,可以使用jsoncpp反序列化。**
- **独立:标准是私有的,比如protocol buffer协议,目前只有Google自家支持。**
- **文本格式:可以看出内容的具体文字含义,比如**

![img](F:/GitHub/README-1/notes/serialization/imgs/5.png)
- **文本格式:可以看出内容的具体文字含义,**

- **二进制格式:纯数值的数据,可读性不强。比如protobuf序列化后的数据。**

Expand All @@ -233,20 +231,9 @@ StackOverflow上MessagePack的原作者也给出了自己的看法,客观的

#### 2.8.2 带宽计算对比



**以腾讯云带宽成本进行核算**



![img](F:/GitHub/README-1/notes/serialization/imgs/8.png)



**以QPS 1万计算**



![img](imgs/9.png)


8 changes: 6 additions & 2 deletions train/fit/grad.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,10 @@ BP算法基于梯度下降策略,以目标的负梯度方向对参数进行调

此方法来自Hinton在2006年发表的一篇论文,Hinton为了解决梯度的问题,提出采取无监督逐层训练方法,其基本思想是每次训练一层隐节点,训练时将上一层隐节点的输出作为输入,而本层隐节点的输出作为下一层隐节点的输入,此过程就是逐层“预训练”(pre-training);在预训练完成后,再对整个网络进行“微调”(fine-tunning)。Hinton在训练深度信念网络(Deep Belief Networks中,使用了这个方法,在各层预训练完成后,再利用BP算法对整个网络进行训练。此思想相当于是先寻找局部最优,然后整合起来寻找全局最优,此方法有一定的好处,但是目前应用的不是很多了。

[权重初始化](init.md)

![](imgs/6.png)

### 3.2 方案2-梯度剪切、正则

**梯度剪切**这个方案主要是针对梯度爆炸提出的,其思想是设置一个梯度剪切阈值,然后更新梯度的时候,如果梯度超过这个阈值,那么就将其强制限制在这个范围之内。这可以防止梯度爆炸。
Expand Down Expand Up @@ -111,7 +115,7 @@ l2_loss = tf.add_n([tf.nn.l2_loss(var) for var in tf.trainable_variables() if 'w

> 注:事实上,在深度神经网络中,往往是梯度消失出现的更多一些。
### 3.3 方案3-relu、leakrelu、elu等激活函数
### 3.3 方案3-relu、leakrelu、elu等[激活函数](activation.md)

#### 3.3.1 Relu

Expand Down Expand Up @@ -161,7 +165,7 @@ elu激活函数也是为了解决relu的0区间带来的影响,其数学表达

但是elu相对于leakrelu来说,计算要更耗时间一些

### 3.4 解决方案4-batchnorm
### 3.4 解决方案4-[batchnorm](batchnorm.md)

**Batchnorm**是深度学习发展以来提出的最重要的成果之一了,目前已经被广泛的应用到了各大网络中,具有加速网络收敛速度,提升训练稳定性的效果,Batchnorm本质上是解决反向传播过程中的梯度问题。batchnorm全名是batch normalization,简称BN,即批规范化,通过规范化操作将输出信号x规范化保证网络的稳定性。

Expand Down
38 changes: 0 additions & 38 deletions train/loss/distance.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,41 +210,3 @@

![相关距离](https://static.oschina.net/uploads/img/201611/14200259_zHVE.png)

## 11. 信息熵(Information Entropy)

以上的距离度量方法度量的皆为两个样本(向量)之间的距离,而信息熵描述的是整个系统内部样本之间的一个距离,或者称之为系统内样本分布的集中程度(一致程度)、分散程度、混乱程度(不一致程度)。系统内样本分布越分散(或者说分布越平均),信息熵就越大。分布越有序(或者说分布越集中),信息熵就越小。

![信息熵公式](E:\README\train\loss\imgs\14200300_UbmF.jpg)

- 信息熵的由来:请参考博客:XXXXXXXX。
- 计算给定的样本集X的信息熵的公式:

![信息熵公式](https://static.oschina.net/uploads/img/201611/14200301_1ALp.png)

参数的含义:

n:样本集X的分类数

pi:X中第 i 类元素出现的概率

信息熵越大表明样本集S的分布越分散(分布均衡),信息熵越小则表明样本集X的分布越集中(分布不均衡)。当S中n个分类出现的概率一样大时(都是1/n),信息熵取最大值log2(n)。当X只有一个分类时,信息熵取最小值0。

## 12. Dice系数

Dice距离用于度量两个集合的相似性,因为可以把字符串理解为一种集合,因此Dice距离也会用于度量字符串的相似性。此外,Dice系数的一个非常著名的使用即实验性能评测的F1值。Dice系数定义如下:

![image-20220106182739145](E:\README\train\loss\imgs\image-20220106182739145.png)

其中分子是A与B的交集数量的两倍,分母为X和Y的长度之和,所以他的范围也在0到1之间。从公式看,Dice系数和Jaccard非常的类似。Jaccard是在分子和分母上都减去了|A∩B|。

![img](imgs/3o3009eelp.png)

与Jaccard不同的是,相应的差异函数

![img](imgs/jw80vez6yz.png)

不是一个合适的距离度量措施,因为它没有三角形不等性的性质。例如给定 {a}, {b}, 和 {a,b}, 前两个集合的距离为1, 而第三个集合和其他任意两个集合的距离为三分之一。

与Jaccard类似, 集合操作可以用两个向量A和B的操作来表示:

![img](imgs/4pmgs7gn0a.png)
4 changes: 2 additions & 2 deletions train/overfitting/introduce_overfitting.md
Original file line number Diff line number Diff line change
Expand Up @@ -274,9 +274,9 @@
![](imgs/30.png)
![](imgs/31.png)

## 8. 解决过拟合的方法—正则化
## 8. 解决过拟合的方法—[正则化](regularization.md)

### 8.1 什么是正则,为什么要正则
8.1 什么是正则,为什么要正则

正则化是一种预防过拟合的方法,我们需要在损失里面加入正则项来作为惩罚,**限制模型的学习能力**

Expand Down

0 comments on commit 15ad53d

Please sign in to comment.