解释下面代码的含义
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)
答案
这个 flag 置为True的话,每次返回的卷积算法将是确定的,即默认算法。
如果配合上设置 Torch 的随机种子为固定值的话,应该可以保证每次运行网络的时候相同输入的输出是固定的。
为True时,在 PyTorch 中对模型里的卷积层进行预先的优化,
也就是在每一个卷积层中测试 cuDNN 提供的所有卷积实现算法,然后选择最快的那个。
会让程序在开始时花费一点额外时间,为整个网络的每个卷积层搜索最适合它的卷积实现算法,
进而实现网络的加速。
获取指定路径下后缀名为.jpg的所有文件
weight_decay,就是权重衰退的weight参数的衰减因子,在一定程度上减少模型过拟合的问题
5.
一定程度上解决梯度爆炸的问题
标准化 通过调整均值、方差 使新的分布更切合数据的真实分布
7.
固定内存 数据不会被换出到外存 提高执行速度