训练自己的训练集中间中断了,在使用代码python mytrain.py --epochs 2000 --resume runs/train/exp9/weights/last.pt
训练显示
AssertionError: runs\train\exp9\weights\last.pt training to 2000 epochs is finished, nothing to resume.
Start a new training without --resume, i.e. 'python train.py --weights runs\train\exp9\weights\last.pt'
可是并没有训练完只训练了400多次
训练集意外中断在训练
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
关注 让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
问题描述: 在训练自己的训练集时,中间中断了,然后使用命令“python mytrain.py --epochs 2000 --resume runs/train/exp9/weights/last.pt”恢复训练,但是出现了错误信息:AssertionError: runs\train\exp9\weights\last.pt training to 2000 epochs is finished, nothing to resume. 提示已经完成训练2000轮,无需恢复训练,而实际上只训练了400多轮。 解决方案: 该问题的原因是自己在训练时中断了训练,而并没有重新保存模型参数,导致在恢复训练时出现了错误信息。因此,需要重新训练模型,并保存模型参数。 正确的命令应该是“python mytrain.py --epochs 2000 --weights runs/train/exp9/weights/last.pt”,即不使用--resume参数,手动指定模型参数的路径,而不是使用--resume参数自动获取参数路径。 代码示例:import torch from torch.utils.data import DataLoader from torch.optim import Adam def train_model(dataset, model, device='cuda'): train_loader = DataLoader(dataset, batch_size=32, shuffle=True) optimizer = Adam(model.parameters(), lr=1e-3) criterion = torch.nn.CrossEntropyLoss() # 加载预训练模型路径 pretrained_path = 'runs/train/exp9/weights/last.pt' if pretrained_path: state_dict = torch.load(pretrained_path, map_location=device) model.load_state_dict(state_dict) # 训练模型 model.to(device) for epoch in range(1, 2001): model.train() for idx, (inputs, labels) in enumerate(train_loader): inputs = inputs.to(device) labels = labels.to(device) optimizer.zero_grad() outputs = model(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step() if idx % 50 == 0: print('Epoch [{}/{}], Step [{}/{}], Loss: {:.4f}'.format( epoch, 2000, idx, len(train_loader), loss.item())) if epoch % 100 == 0: # 保存模型参数 save_path = 'runs/train/exp9/weights/last.pt' torch.save(model.state_dict(), save_path) if __name__ == '__main__': # 加载数据集和模型 dataset = MyDataset() model = MyModel() # 训练模型 train_model(dataset, model)
在训练模型时,需要手动指定预训练模型的路径,并在每轮训练后保存模型参数。这样就可以避免训练过程中中断时导致参数无法恢复的问题。
解决 无用评论 打赏 举报
悬赏问题
- ¥30 模拟电路 logisim
- ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音
- ¥30 Pytorch深度学习服务器跑不通问题解决?
- ¥15 部分客户订单定位有误的问题
- ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
- ¥15 Bug traq 数据包 大概什么价