一些Torch库

torch-fidelity

这是pytorch中用来计算生成模型评价指标的库,包含下列指标:

安装

快速调用

torch.nn

torch.nn.Identity()

torch.nn.functional

torch.nn.functional.pad

torch.nn.functional.softmax

一维Tensor创建

Torchvision函数用法

torchvision.transform

ToTensor()

Torch深度学习训练

数据载入

创建自己的datsset

对自己的数据集创建dataset loading script,使用一行代码实现数据读入

多GPU并行训练

数据并行

数据划分

使用DistributedSampler函数对数据进行划分,该函数存在于torch.utils.data.distributed目录下,因此调用方式有

权重初始化

数据并行时需要保证每个worker上面的权重初始化是相同的,否则梯度将不是针对同一组权重,导致训练结果的不准确。因此,权重的初始化可以通过两种方式来实现:

转化为分布式模型

对完成参数初始化的模型,使用以下代码转化为分布式模型

训练

梯度更新

使用loss.backward()仅得到当前进程的loss,需要使用reduce的方法来实现所有worker上损失的汇聚,最为简单的方法是对所有worker损失求平均。

验证

同理,在完成训练后验证阶段也需要对所有worker的损失/正确个数求和,此时可将reduce_valueaverage参数设置为False实现