2 : 代码阅读。
神经网络的一个基本的框架就是 : 数据读取 , 模型载入, 训练,测试。 我们接
下来根据这四块来看。
2.1: 数据读取
运行 main 文件 。
main(device=args.device, args=args)
进入 main 函数 。
是三个数据集的读取。
train_loader ,, memory_loader 和 test_loader。 train 和 memory 都是训练集的数据 他
们的不同之处在于, 数据增广的方式不同。 train 的增广是用来训练的 memory 和 test 的
增广都是用来测试的。由于在对比学习里, 数据增广是很重要的 ,所以这里看下数据增
广的方式。
dataset=get_dataset(
transform=get_aug(train=True, **args.aug_kwargs),
train=True,
**args.dataset_kwargs),
**args.aug_kwargs 里规定了图片大小是 32. 以及这次用的是 simsaim。
这里两个 train 。 只有训练集的第一个 train 是 true。 而训练集的增广方式如下
class SimSiamTransform():
def __init__(self, image_size, mean_std=imagenet_mean_std):
image_size = 224 if image_size is None else image_size # by default simsiam use
image size 224
p_blur = 0.5 if image_size > 32 else 0 # exclude cifar
# the paper didn’t specify this, feel free to change this value
# I use the setting from simclr which is 50% chance applying the gaussian blur
# the 32 is prepared for cifar training where they disabled gaussian blur
self.transform = T.Compose([
T.RandomResizedCrop(image_size, scale=(0.2, 1.0)),
T.RandomHorizontalFlip(),
T.RandomApply([T.ColorJitter(0.4,0.4,0.4,0.1)], p=0.8),
评论1
最新资源