LHY_HW3

107 阅读1分钟

解释下面代码的含义

1.

torch.backends.cudnn.deterministic = True

2.

torch.backends.cudnn.benchmark = False

3.

self.files = sorted([os.path.join(path, x) for x in os.listdir(path) if x.endswith(".jpg")])

4.超参数weight_decay的作用?

optimizer = torch.optim.Adam(model.parameters(), lr=0.0003, weight_decay=1e-5)

5.

grad_norm = nn.utils.clip_grad_norm_(model.parameters(), max_norm=10)

6.BatchNorm的作用?

nn.BatchNorm2d(64)

7.参数pin_memory作用?

train_loader = DataLoader(train_set, batch_size=batch_size, shuffle=True, num_workers=0, pin_memory=True)

答案

1.

这个 flag 置为True的话,每次返回的卷积算法将是确定的,即默认算法。
如果配合上设置 Torch 的随机种子为固定值的话,应该可以保证每次运行网络的时候相同输入的输出是固定的。

2.

True时,在 PyTorch 中对模型里的卷积层进行预先的优化,
也就是在每一个卷积层中测试 cuDNN 提供的所有卷积实现算法,然后选择最快的那个。
会让程序在开始时花费一点额外时间,为整个网络的每个卷积层搜索最适合它的卷积实现算法,
进而实现网络的加速。

3.

获取指定路径下后缀名为.jpg的所有文件

4.

weight_decay,就是权重衰退的weight参数的衰减因子,在一定程度上减少模型过拟合的问题

5. 一定程度上解决梯度爆炸的问题

参考博客1

参考博客2

6.

标准化 通过调整均值、方差 使新的分布更切合数据的真实分布

7. 固定内存 数据不会被换出到外存 提高执行速度