
Python开发与算法
文章平均质量分 73
记录和分享我在使用python做项目的时候遇到的一些问题及对应的解决方法。
Cameron Chen
这个作者很懒,什么都没留下…
展开
-
模型部署之NVIDIA AGX Xavier 配置和使用Torch,ONNX,TensorRT做模型推理
Nvidia AGX Xavier 配置CUDA,PyTorch,ONNX,TensorRT,将深度学习模型部署到小车上,测试三个计算框架的性能原创 2022-12-26 20:09:55 · 4216 阅读 · 4 评论 -
用multiprocessing.Queue自己编写进程池实现DataLoader(父子进程通信)
multiprocess库提供了pool进程池,直接实现了多进程之间的通信,pool的使用场景也很多,这里不做介绍。但pool不能实现父子进程之间的通信,要想实现父子通信,需要自己用Queue写一个进程池,通过创建子队列和父队列来进行父子通信。这个用途就更广泛了,比如想要开多个子进程帮你处理一些数据或文件,最后把结果都收回到主进程,这也就是自己编写DataLoader,很多实际项目中需要自己写一个数据预处理代码,所以要自己重写DataLoader。原创 2022-01-19 12:57:03 · 919 阅读 · 0 评论 -
DistributedDataParallel(DDP)Pytorch 分布式训练示例及注意事项
首先用torch.multiprocess的spawn库来自动开启多进程进行分布式训练,每个子进程自动对应一个GPU和一个DDP训练的模块;在do_train函数中初始化DDP配置,并将model放置到指定GPU上,dataset指定sampler=train_sampler,然后training epoch部分用train_sampler.set_epoch(i_epoch)给每个epoch sample dataset,最后destroy process group。原创 2022-01-17 12:42:31 · 2666 阅读 · 0 评论 -
Python 符号表达式运算与求解约束条件为优化问题的优化问题
Background信息论project, 求LDPC的variable nodes和check nodes的degree,即λ和ρ,使得code rate最大, 抛开背景,就是个优化问题,形式如下:Analysis这个优化问题的constraint非常特别,首先以一个多项式带入另一个多项式的x,自己算是没法算的,次数非常高,因此要先用符号运算求出constraint的表达式;其次它在x的连续的区间内都要满足,引入了新的变量x,容易想到嵌套优化问题的思路,但直接scipy.optimize.原创 2021-11-14 15:09:57 · 2896 阅读 · 2 评论 -
python 读取.properties文件
以.properties为后缀名的文件是在Java开发中非常常用的一种用于存储可变参数的文件类型,例如不同环境的ip地址、端口号、账号密码,又或者是模型的超参数,都可以保存在这类文件中,这样就不需要在代码中找到每个变量的位置并修改。同样,在Python开发中也可以编写一个读取这个文件类型(当然Java还有很多优秀的编程思想,非常值得借鉴),流程非常简单。 1. 编写读取.properties的文件: properties.py# 读取Properti...原创 2021-10-15 21:40:00 · 7035 阅读 · 3 评论 -
无网环境下离线安装pip三方库
在写好一个python脚本后,有时需要放到linux服务器上使用,而服务器很有可能是没有联网的,无法直接用pip install下载脚本所需的三方库。这种情况下需要用到离线安装pip包的方法。 1. 在有网环境下,将python脚本或整个python项目所需的三方库写入requirement.txt文本中,这里使用pipreqs三方库。# 安装pipreqs包pip install pipreqs# 在项目文件路径下pipreqs ./ # 如果gbk编码......原创 2021-10-15 21:27:40 · 6266 阅读 · 0 评论