0%

2022-2023

在kindle和微信读书 读完《明朝那些事儿》《三体》《长安的荔枝》《生死疲劳》《活着》《白鹿原》《千江有水千江月》《蛙》《平凡的世界》《钟鼓楼》《在细雨中呼喊》《受戒》《人间草木》,未完成《西南联大求学日记》《显微镜下的大明》。
8月发现杭州图书馆的一键借阅,“你选书我买单”活动,便开始在钟书阁借新书。还是纸质书籍看的舒服,而且还是新书,太满足了,开始我的读书之旅。《岁寒三友》《倾城之恋》《置身室内》《繁花》《围城》《呐喊》;《故事新编》《许三观卖血记》。

上一篇总结了PyTorch,这一篇总结下自动混合精度AMP训练。
参考AUTOMATIC MIXED PRECISION PACKAGEPyTorch的自动混合精度(AMP)PyTorch 源码解读之 torch.cuda.amp: 自动混合精度详解

自动混合精度(Automatic Mixed Precision, AMP)训练,是在训练一个数值精度 FP32 的模型,一部分算子的操作时,数值精度为 FP16,其余算子的操作精度是 FP32,而具体哪些算子用 FP16,哪些用 FP32,不需要用户关心,amp 自动给它们都安排好了。这样在不改变模型、不降低模型训练精度的前提下,可以缩短训练时间,降低存储需求,因而能支持更多的 batch size、更大模型和尺寸更大的输入进行训练。PyTorch 从 1.6 以后(在此之前 OpenMMLab 已经支持混合精度训练,即 Fp16OptimizerHook),开始原生支持 amp,即torch.cuda.amp module。

阅读全文 »

三天半的清明假期开始啦!先来总结下PyTorch分布式训练相关的内容。
GETTING STARTED WITH DISTRIBUTED DATA PARALLELDistributedDataParallel(DDP)可以跨多台机器运行,实现数据并行。DDP使用torch.distributed包中的集体通信来同步梯度和buffer。
研究生的时候一直使用的是DataParallel,但是DistributedDataParallel的效率更高,主要区别如下:

  • DataParallel是单进程、多线程,并且只在单机上工作,而DistributedDataParallel是多进程的,适用于单机和多机训练。
  • 由于跨线程的GIL争用、每次迭代的复制模型以及分散输入和收集输出引入的额外开销,即使在单台机器上,DataParallel通常也比DistributedDataParallel慢。
  • DistributedDataParallel可以和model parallel一起使用,而DataParallel不可以。

因此使用DistributedDataParallel是非常有必要的!

阅读全文 »

Self-Similarity Grouping: A Simple Unsupervised Cross Domain Adaptation Approach for Person Re-Identification
https://github.com/SHI-Labs/Self-Similarity-Grouping
youtube 1:28:21
Yang Fu, Yunchao Wei, Guanshuo Wang, Yuqian Zhou, et al.
University of Illinois at Urbana-Champaign, University of Technology Sydney.

关注目标域上特征的相似性。提出了Self-similarity Grouping (SSG)方法,从全局和局部构建多个聚类,进行聚类和训练的迭代过程;在SSG上,基于聚类得到的伪标签提出了半监督的训练策略,实现one-shot domain adaption in an open set setting,将它集成在SSG框架中,进行无监督分支和半监督分支的一起学习,得到SSG++。没有明白具体的训练过程。
阅读全文 »

Unsupervised Person Re-identification: Clustering and Fine-tuning
https://github.com/hehefan/Unsupervised-Person-Re-identification-Clustering-and-Fine-tuning
Hehe Fan, Liang Zheng, Chenggang Yan, Yi Yang.
Hangzhou Dianzi University, University of Technology Sydney.

相关工作介绍很详细,首次提出在无监督的行人重识别上进行Clustering and Fine-tuning。提出Progressive Unsupervised Learning (PUL)方法,不停地迭代进行clustering和fine-tuning;还进行了样本选择操作,以self-paced learning的思路选择可靠的样本进行训练。
阅读全文 »

Unsupervised Domain Adaptation with Noise Resistible Mutual-Training for Person Re-identification
Fang Zhao, Shengcai Liao, Guo-Sen Xie, Jian Zhao, Kaihao Zhang, Ling Shao.
Inception Institute of Artificial Intelligence.

行人重识别无监督域自适应,为了抑制无监督聚类时产生的标签噪声,使用了两个结构相同只是随机性不同的网络进行信息交互。首先提出了一个损失函数,使用两个网络产生的伪标签一起对单个网络进行监督;然后提出两个标准进行训练时样本的挑选。
阅读全文 »

Unsupervised domain adaptive re-identification: Theory and practice
https://github.com/LcDog/DomainAdaptiveReID
Liangchen Song, Cheng Wang, Lefei Zhang, et al.
Wuhan University, Horizon Robotics, Huazhong University of Science and Technology.

将分类任务中的无监督域自适应理论扩展到re-ID,在特征空间上引入一些假设,并根据这些假设导出损失函数,提出了self-training框架最小化损失函数。
阅读全文 »

记录模块torch.nn.Parameter、torch.nn.Module、torch.autograd.Function,和常见的函数。

阅读全文 »