如何利用PyTorch训练生成文件查看特定Epoch的模型损失及统计信息?
可以找回特定Epoch的统计信息,无需重新训练
你可以通过以下两种方式提取目标Epoch的损失和鲁棒性统计数据:
1. 优先读取log/train_stats.npy
这个文件是训练过程中专门保存所有Epoch统计指标的文件,包含你需要的损失、鲁棒性结果等。用Python加载后即可直接提取:
import numpy as np # 加载统计数据 train_stats = np.load("log/train_stats.npy", allow_pickle=True).item() # 先查看文件包含的指标类型(比如train_loss、robust_acc等) print(train_stats.keys()) # 提取指定Epoch的统计(注意Epoch编号是否从1开始,索引需对应调整) target_epoch = 93 # 假设Epoch从1开始,索引减1 print(f"Epoch {target_epoch} 训练损失: {train_stats['train_loss'][target_epoch-1]}") print(f"Epoch {target_epoch} 鲁棒性指标: {train_stats['robust_acc'][target_epoch-1]}")
2. 从resnet文件夹的checkpoint文件提取
如果train_stats.npy里缺少你需要的特定指标,可以读取对应Epoch的opt-res-checkpoint_epochX.tar文件——这类checkpoint通常会附带该Epoch的训练统计:
import torch # 加载目标Epoch的checkpoint checkpoint = torch.load("resnet/opt-res-checkpoint_epoch93.tar") # 查看checkpoint包含的内容 print(checkpoint.keys()) # 提取统计数据(键名需根据实际保存的内容调整) print(f"Epoch 93 训练损失: {checkpoint.get('train_loss')}") print(f"Epoch 93 鲁棒性指标: {checkpoint.get('robust_metric')}")
这两种方式都能帮你找回目标Epoch的统计信息,完全不需要重新执行训练。
内容的提问来源于stack exchange,提问作者Sergio
相关产品推荐
相关产品推荐

