在此处的训练完成是指每次完整的训练结束,而不是一个epoch训练结束
模型调参数训练中,为了确保每次训练的初始参数相同,我们通常需要设置随机数种子(random seed)。这是因为神经网络的初始权重通常是随机初始化的,这会导致每次训练的初始状态不同,从而影响模型的训练结果。通过设置随机数种子,我们可以使随机数生成器在每次运行时产生相同的随机数序列,从而确保神经网络的初始参数相同。
随机种子pytorch示例:
import torch
import numpy as np
import random
# 设置 Python 内置的随机数生成器种子
random.seed(42)
# 设置 Numpy 随机数生成器种子
np.random.seed(42)
# 设置 PyTorch 随机数生成器种子
torch.manual_seed(42)
# 如果使用 GPU 进行训练,还需要设置以下随机数种子
torch.cuda.manual_seed(42)
torch.cuda.manual_seed_all(42)
# 确保在使用CUDA的情况下使得所有操作的行为是确定性的
torch.backends.cudnn.deterministic = True
torch.backends.cudnn.benchmark = False
通过设置随机数种子,我们可以确保每次训练的初始参数相同,从而使实验结果具有可重复性。请根据使用的深度学习框架选择合适的随机数种子设置方法。