if (i + 1) % 100 == 0:
print("\titers: {0}, epoch: {1} | loss: {2:.7f}".format(i + 1, epoch + 1, loss.item()))
speed = (time.time() - time_now) / iter_count
left_time = speed * ((self.args.train_epochs - epoch) * train_steps - i)
print('\tspeed: {:.4f}s/iter; left time: {:.4f}s'.format(speed, left_time))
iter_count = 0
time_now = time.time()
迭代与 epoch
- for epoch in range(self.args.train_epochs): 表示训练过程将进行 self.args.train_epochs 个 epoch。
- for i, (batch_x, batch_y, batch_x_mark, batch_y_mark) in enumerate(train_loader): 表示在每个 epoch 中,模型将遍历 train_loader 中的所有小批量数据,每个小批量数据对应一次迭代。
iter_count
optim
优化器会根据其内部的更新规则(如 Adam 算法)调整模型的权重和偏置。