moco代码阅读笔记

关于moco的论文解析有很多了,但是光看解析还是有一些内容不是很懂。于是就想着看看代码。

基本思路

图片进行两次数据增强,分别成为query和key。每张图片要只和自己是一类,和别的图片不成为一类。

看论文的时候理解错误的地方:

  • 以为每次从队列中弹出来一部分作为反例,其实是整个队列都会作为反例的

看论文的时候没有理解的地方:

  • 是不是一定需要保证队列里存在的样本和query的样本是不重复的?怎么保证的?

理论上需要保证,但是代码里在第一个epoch是不会重复,在后面的epoch有极低的概率重复,不会影响到训练

  • 既然需要一个队列,那么第一个epoch的第一个batch的时候,队列里面是空的,这个时候负样本是怎么产生的?

开始的时候随机初始化队列,随机结果充满队列

代码阅读

代码:https://github.com/facebookresearch/moco

数据构造

首先是看它数据准备的部分。由于预训练是无监督的,所以只加载了images,而标签就舍弃了

    for i, (images, _) in enumerate(train_loader):
        # measure data loading time
        data_time.update(time.time() - end)

        if args.gpu is not None:
            images[0] = images
  • 16
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值