如何利用PyTorch中的Moco-V2减少计算约束

本文介绍了如何使用PyTorch实现Moco-v2,以减少计算约束。Moco-v2是一种对比学习方法,旨在提供SimCLR的强大功能,但计算需求更低。文章详细讨论了负对的生成、动态词典的概念以及MoCo-v2框架的步骤,包括损失函数InfoNCE。在Imagenette和Imagewoof数据集上进行训练,结果显示,尽管与监督学习方法相比仍有差距,但Moco-v2在无监督学习中表现良好。
摘要由CSDN通过智能技术生成

作者|GUEST 编译|VK 来源|Analytics Vidhya

介绍

SimCLR论文(http://cse.iitkgp.ac.in/~arastogi/papers/simclr.pdf)解释了这个框架如何从更大的模型和更大的批处理中获益,并且如果有足够的计算能力,可以产生与监督模型类似的结果。

但是这些需求使得框架的计算量相当大。如果我们可以拥有这个框架的简单性和强大功能,并且有更少的计算需求,这样每个人都可以访问它,这不是很好吗?Moco-v2前来救援。

注意:在之前的一篇博文中,我们在PyTorch中实现了SimCLR框架,它是在一个包含5个类别的简单数据集上实现的,总共只有1250个训练图像。

数据集

这次我们将在Pytorch中在更大的数据集上实现Moco-v2,并在Google Colab上训练我们的模型。这次我们将使用Imagenette和Imagewoof数据集

来自Imagenette数据集的一些图像

这些数据集的快速摘要(更多信息在这里:https://github.com/fastai/imagenette):

  • Imagenette由Imagenet的10个容易分类的类组成,总共有9479个训练图像和3935个验证集图像。

  • Imagewoof是一个由Imagenet提供的10个难分类组成的数据集,因为所有的类都是狗的品种。总共有9035个训练图像,3939个验证集图像。

对比学习

对比学习在自我监督学习中的作用是基于这样一个理念:我们希望同一类别中不同的图像观具有相似的表征。但是,由于我们不知道哪些图像属于同一类别,通常所做的是将同一图像的不同外观的表示拉近。我们把这些不同的外观称为正对(positive pairs)。

另外,我们希望不同类别的图像有不同的外观,使它们的表征彼此远离。不同图像的不同外观的呈现与类别无关,会被彼此推开。我们把这些不同的外观称为负对(negative pairs)。

在这种情况下,一个图像的前景是什么?

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值