-
Epoch:一个 epoch 完成时意味着网络已经使用了整个训练数据集进行了一次训练。这包括对所有批次的多次迭代。
-
Iteration:一次 iteration 是指对训练数据的一个批次(batch)进行一次前向和后向传播。在一个 epoch 中会有多个 iterations,其数量取决于训练集的大小和批次大小。
假设训练数据集有 1000 个样本,批次大小为 100。那么:
- 每个 epoch 将包括 1000 / 100 = 10 个 iterations,因为每个 iteration 只处理一个批次的 100 个样本。
- 在完成一个 epoch(即遍历整个数据集一次)后,模型会进行 10 次 iterations。
# 获得一个epoch中的iteration数
num_batches = len(dset_loaders['tgt_train_loader'])
#完整训练的最大iteration数
max_iter = args.epochs * num_batches
# 设置中间iter,可作为val。
interval_iter = max_iter // 10