pytorch load state dict_Pytorch模型resume training,加载模型基础上继续训练

Step1:首先查看源码train.py中如何保存模型的:

checkpoint_dict 

并查看源码中如何加载参数(参数名):

#print('----------model loading-------------------')        

step2:然后根据保存的模型的写法,自己写加载模型:

start_epoch 

其中“resume”和“checkbreakpoint”都是在parse参数时候定义,直接写入命令行:

self

Step3:最后调整训练轮数

原来是输入了一个epoch值,训练迭代为range(0,epoch)

# 原来的

现在需要改成,输入一个开头值,加上新训的轮数,训练迭代为range(start_epoch, start_epoch+新训多少轮)

  • 如果没有断点续传,start_epoch默认为-1,(start_epoch==-1?0:start_epoch) 为0,则轮数为(-1+1=0,0+epochs)
  • 如果有断点续传,start_epoch被更新为断点,start_epoch==-1?0:startepoch)为start_epoch, 则轮数为(start_epochs+1, start_epoch+新增轮数)
# 新的

例如,断点start_epoch是300,opt.epochs=200, 就从(300+1,300+200),新训200轮。

Step4:直接训练,注意新补充参数,resume和checkbreakpoint

python train.py --resume True --checkbreakpoint ../epoch_240.pth.tar --lr 1e-5 --logdir ./1e-5 --gpus 2 --epochs 200

你可能感兴趣的:(pytorch,load,state,dict,pytorch模型加载参数)