pytorch-lightning的一些记录

  • 收集每个GPU上的输出
    在分布式训练时,每个GPU都会有一部分数据,当我们需要使用全部的数据进行计算时,我们需要收集所有GPU的tensor。
    比如两个GPU,第一个GPU有16组数据,第二个GPU有16组数据, 在进行对比学习计算时,我们需要收集所有的输出来增加负样本的数量。
    我们可以使用tensors_from_all = self.all_gather(my_tensor)
    比如:
    def training_step(self, batch, batch_idx):
        outputs = self(batch)
        ...

        all_outputs = self.all_gather(outputs, sync_grads=True)

        loss = contrastive_loss_fn(all_outputs, ...)
        return loss
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容