Home
ZhangGe's Blog
Cancel

【WIP】推理图优化方法小结

在神经网络推理过程中,图优化可以达到降低运算量、减少算子invoke数目与降低缓存开销等效果,提升推理效率。本文对常见的推理图优化方法进行小结,并不断增补中。 符号定义 卷积、全连接层运算 设卷积或全连接层$Layer(W, b)$的权重和偏置为\(W\)和\(b\),输入和输出分别为\(X\)和\(X^{\prime}\),有 \(X^{\prime} = X \otimes W ...

Flask项目部署记录(uwsgi)

Flask是一个使用Python编写的轻量级Web应用框架。基于它可以很方便地搭建起一个Web应用,但其内建服务器不适用于生产环境。所以当在本地完成了一个Flask应用,为了更高效、安全、稳定地把它展示给全世界,是时候部署它了! 本页记录我把一个Flask应用部署到腾讯云服务器上的操作过程,用到了uwsgi。 再进一步地,为了支持高性能、高并发,还可以用到nginx。但这一步我暂时...

格式化输出小节

本页总结Python、C和C++的格式化输出。 Python 参考1 参考2 使用 placeholder_str.format(value1, value2...) 进行字符串格式化。其中 placeholder_str是包含{}的字符串,{}可以是空,下标值或参数名; value1,value2...可以是值,也可以是键值对。 示例 print("My nam...

CMake学习

CMake是一个跨平台、开源的构建工具,在各种大型C/C++项目中被广泛使用。 CMake是一个"generator",它不会直接编译目标,而是根据CMakeLists.txt生成当前平台编译所需要的文件(如makefile),然后由当前平台编译工具进行编译(如make)。参考 之所以说CMake是跨平台的,是因为CMakeLi...

对Roofline模型的理解

Roofline模型非常简洁,却对计算加速有很好的指导意义。它要解决的是“计算量为$N$且访存量为$V$的算法,在算力为$P_{peak}$且带宽为$B$的计算平台所能达到的理论性能上限是多少”这个问题。可以帮助分析当前算法的性能是受算法实现所限还是平台本身算力限制,进而更有针对性地改进算法性能。 Roofline模型 给定一个计算平台,它的峰值算力\(P_{peak}\)(单位flop...

Regex正则表达式学习与使用

感觉Regex正则表达式是这样一种东西: 没有需求时去学习它:天啊这一串符号都是什么东西,怎么学啊! 当有需求用到它并且成功应用时:真是太方便了!真香,要学习! 动机 最近实习的时候,需要协助处理代码审查系统的告警,其中有大量(约1.6k)的命名风格的问题,需要对原有的变量命名进行批量替换。我用的编辑器是VS Code,它的朴素的字符串替换功能已经不能满足需求了,比如我需要做...

Python argparse使用方法小结

本页对Python常用的命令行解析模块argparse的常用方法做一个小结,为了清晰和简化,每个例程只涉及一种功能,便于日后参考。 import argparse def parse_args(): parser = argparse.ArgumentParser() parser.add_argument('name', help='test positional a...

部署经验总结

预处理 ncnn的substract_mean_normalize ​ 该函数输入像素范围在[0,255],对于不同的框架可能需要进行转换,具体参见这里。 安卓端部署 Android Studio 打包APK

ACM格式输入输出总结

Python 读取单个元素 t = input() # 字符 t = int(input()) # 整数 读取单行元素 items = list(input().split(" ")) # 字符 items = list(map(int, input().split(" "))) # 整数 确定数目行的元素 N = int(input()) f...

Python的继承

面向对象的编程带来的主要好处之一是代码的重用。假如需要定义几个类,而类与类之间有一些公共的属性和方法,这时就可以把相同的属性和方法作为基类的成员,而特殊的方法及属性则在本类中定义。这样子类只需要继承基类(父类),子类就可以访问到基类(父类)的属性和方法了,从而提高代码的可扩展性和重用性。 Python的继承是一个比较基础的内容,以往存在一些理解不明确的地方,因此做了一个简单学习整理,本页是...