深度学习Pytorch代码相关总结

1、多GPU训练

        Pytorch分布式训练DataParallel和DistributedDataParallel详解_ncll backend_九点澡堂子的博客-CSDN博客

 关于DDP单卡多GPU训练:为防止出现OS中无WORLD_SIZE、RANK、LOCAL_RANK、MASTER_ADDR、MASTER_PORT字段,及init_process_group卡死,需要使用命令行拉起进程:

CUDA_VISIBLE_DEVICES=0,3 python -m torch.distributed.launch --nnodes 1 --nproc_per_node 2 --node_rank 0 --master_addr 127.0.0.1 --master_port 23541 --use_env main.py other_parm

2、随机种子seed

        随机种子的作用是为了初始化参数;

        保证每一次初始化的参数都一样;

        这样每一次训练出来的结果都会保持一致

        https://blog.csdn.net/weixin_43942515/article/details/115758887

        https://blog.csdn.net/hyh14/article/details/127804743

3、图像处理

        T.Compose([ ...])

        T.RandomHorizontalFlip():随机水平翻转给定的PIL.Image,概率为0.5。即:一半的概率翻转,一半的概率不翻转。

        T.ColorJitter(0.4, 0.4, 0.4, 0.4):随机调整图像的亮度,对比度,饱和度和色调。

        T.RandomSelect:随机选择两个子操作之一: (1) 一个单个 RandomResize 步骤; (2) 一个 三步骤操作: RandomReizeRandomSizeCrop, 以及 RandomResize

   T.RandomResize(scales, max_size=1333):该方法随机选择sizes中的一个值作为图像短边的目标尺寸,同时保持图像的比例不变。但是,如果图像的长边大于max_size(当使用所选尺寸作为短边时),则将图像的长边设置为max_size,而较短的尺寸需要重新计算以保持图像长宽比例不变。

        T.RandomSizeCrop:对图片进行随机尺寸的裁剪 最后缩放到统一大小

         T.ToTensor():将numpy的图片shape是hwc(高,宽,通道)格式的图片矩阵转换为chw格式的torch.tensor格式https://blog.csdn.net/weixin_43794311/article/details/122135827

        T.Normalize(mean, std):输入(channel,height,width)形式的tensor,并输入每个channel对应的均值和标准差作为参数,函数会利用这两个参数分别将每层标准化(使数据均值为0,方差为1)后输出。https://blog.csdn.net/Yasin1/article/details/120123710

4、封装数据集

        DataSet:数据集。负责对原始训练数据的封装,将其封装成 Python 可识别的数据结构,Dataset的派生类必须提供接口__getitem__获取单个数据。

        Sampler:采样器,负责采样方式或者说是采样策略,实现某种提取/采样策略从Dataset之中拿到数据索引,供DataLoade使用。

                DistributedSampler(Sampler):转化为分布式采样。

                BatchSampler(DistributedSampler):在一个batch中封装一个其他的采样器, 返回一个 batch 大小的 index 索引

        DataLoader(DataSet, Sampler):依据Sampler指定的采样规则,从DataSet数据集中加载数据

你可能感兴趣的:(python,pytorch,深度学习,计算机视觉)