个人学习笔记

编辑ONNX模型

1 分钟阅读

概述 概述 onnx模型编辑方法有2种: onnx-graphsurgeon : 手工编辑onnx模型 onnx-modifier : 图形化编辑onnx模型 虽然onnx-modifier有图形界面编辑onnx,但是实际用起来问题特别多。onnx-graphsurgeon用起来更加强大,简洁。 安装方法如下: pip install onnx_graphsurgeon --index-url https://pypi.ngc.nvidia.com 也可以源码编译安装: make build pip install onnx_graphsurgeon/dist/onnx_graphsurgeon-*-py2.py3-none-any.whl

FasterRCNN

1 分钟阅读

概述 概述 源码: Torch Faster RCNN 论文地址:Faster R-CNN

各NN框架的MLIR

24 分钟阅读

ONNX MLIR ONNX MLIR 官网介绍:http://onnx.ai/onnx-mlir 论文:Compiling ONNX Neural Network Models Using MLIR github地址:onnx mlir docker下载:docker pull onnxmlirczar/onnx-mlir:amd64 转换工具 ## EmitONNXBasic 会生成.mlir文件(含文本形式的weight)和.tmp文件(不含weight) docker/onnx-mlir.py --EmitONNXBasic xxx.onnx

MLIR技术细节整理

59 分钟阅读

MLIR 编译方法 MLIR MLIR: Multi-Level Intermediate Representation,主要设计者来自Google的Chris Lattner 论文MLIR: A Compiler Infrastructure for the End of Moore’s Law 官网介绍:https://mlir.llvm.org 编译方法 git clone https://github.com/llvm/llvm-project.git mkdir llvm-project/build cd llvm-project/build cmake -G Ninja ../llvm \ -DLLVM_ENABLE_PROJECTS=mlir \ -DLLVM_BUILD_EXAMPLES=ON \ -DLLVM_TARGETS_TO_BUILD="X86;NVPTX;AMDGPU" \ -DCMAKE_BUILD_TYPE=Release \ -DLLVM_ENABLE_ASSERTIONS=ON \ # -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DLLVM_ENABLE_LLD=ON cmake --build . --target check-mlir

LLVM积累

10 分钟阅读

RTTI 官网介绍:llvm github源码:llvm-project RTTI 阅读:How to set up LLVM-style RTTI for your class hierarchy llvm有这些RTTI接口可以使用isa<>、dyn_cast<>、cast<>等等。 使用这些接口,父类和子列有这些要求: 父类:定义Kind枚举,且构造函数用Kind做入参 子列:构造函数指定kind,且定义classof接口 使用时如果入参可能是空指针,则需要调用dyn_cast_or_null<>转换。

Pytorch

3 分钟阅读

概述 概述 帮助文档 pip install torch, pip install torchvision, pip install onnx, pip install onnxruntime

Resize

5 分钟阅读

概述 概述 ONNX操作描述:Resize 参考代码:resize.py 坐标转换模式: half_pixel、align_corners、asymmetric、pytorch_half_pixel、tf_crop_and_resize 插值模式: linear、nearest、cubic 本文以 $ A[h_a, w_a] $ resize to $ B[h_b, w_b] $举例。

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(\frac{QK^T}{\sqrt{d_k}})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