本页总结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的继承是一个比较基础的内容,以往存在一些理解不明确的地方,因此做了一个简单学习整理,本页是...
tensorboard使用
关于本页 tensorboard是一款经典的机器学习可视化工具。它原本是tensorflow的可视化工具,pytorch从1.2.0开始正式支持tensorboard。本页介绍我在使用过程中的一些操作和经验记录,便于日后参考复用,主要结合pytorch。 pytorch提供的tensorboard官方文档和示例:戳这里 一些已有的文章:1 一些操作记录 使用方法 要运行...
tqdm常用操作
关于本页 tqdm及一个基于Python的开源包,可以很方便地为程序运行加上进度条,方便知道程序运行进度。本页结合官方文档,记录一些个人的常用操作。 基本操作 iterable-based Wrap tqdm() around any iterable: from tqdm import tqdm for i in tqdm(range(10)): ... for i i...