深度学习-模型调试经验总结

1、
在这里插入图片描述这句话的意思是:期望张量的后端处理是在cpu上,但是实际是在cuda上。排查代码发现,数据还在cpu上,但是模型已经转到cuda上,所以可以通过把数据转到cuda上解决。
解决代码:

tensor.to("cuda")

2、
在这里插入图片描述解决方法:减小batch size的大小或减小图片的尺寸
3、

在这里插入图片描述原始的代码如下:

torch.save(model.module.state_dict(), os.path.join(model_prefix, '{}-model.pth'.format(epoch)))

原因:因为只有一块GPU,以上代码是多GPU使用的
解决方法:改为以下单GPU代码:

        meta = {}
        checkpoint = {"meta": meta, "state_dict": weights_to_cpu(model.state_dict())}
        if optimizer is not None:
            checkpoint["optimizer"] = optimizer.state_dict()
        torch.save(checkpoint, os.path.join(model_prefix, '{}-model.pth'.format(epoch)))

4、在这里插入图片描述原始代码:

base_net.load_state_dict(torch.load(pretrain_model, map_location='cpu'))

原因:模型参数文件是保存在了state_dict中,所以后面要加
解决方法:改成以下代码:

base_net.load_state_dict(torch.load(pretrain_model, map_location='cpu')["state_dict"])


5、pytorch创建data.DataLoader时,参数pin_memory的理解
参考:https://blog.youkuaiyun.com/luanchishen6341/article/details/105267653
6、SGD随机梯度下降原理详解
参考:https://blog.youkuaiyun.com/qq_16488989/article/details/112599857
7、鞍点问题
参考:https://baijiahao.baidu.com/s?id=1774991523547974778&wfr=spider&for=pc
8、随机梯度下降中的动量
参考:https://blog.youkuaiyun.com/EasonCcc/article/details/120078176

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值