关于torch.save函数报错的问题
执行torch.save(net.state_dict(), save_path_pth)报错:
RuntimeError: Parent directory D:\xxxxxxxxxxx\weights does not exist.
解决办法
原报错代码
save_path = r'D:\迁移学习实验\resnet50_network\weights'
...
...
save_path_pth = os.path.join(save_path,
'update_{}_val_acc_{:.3f}.pth'.format(epoch + 1, best_acc))
torch.save(net.state_dict(), save_path_pth)
修改后的代码
save_path = r'D:\transfer_learning\resnet50_network\weights'
...
...
save_path_pth = os.path.join(save_path,
'update_{}_val_acc_{:.3f}.pth'.format(epoch + 1, best_acc))
torch.save(net.state_dict(), save_path_pth)
结论
没错!聪明的你应该已经发现了,问题就出在save_path中出现了中文路径导致找不到该路径,全部修改中文就好了。
如果你的保存路径很长,实在不想改那么多怎么办?可以使用相对路径,只要保证脚本所在的同级目录往后都是英文就可以了。
save_path = r'.\weights'
记录一下,毕竟这个问题我找了一个晚上。希望能够帮助大家少走点弯路。