本文介绍: 这句话的意思是:期望张量的后端处理是在cpu上,但是实际是在cuda上。排查代码发现数据还在cpu上,但是模型已经转到cuda上,所以可以通过数据转到cuda解决。解决方法减小batch size大小减小图片尺寸

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"])

原文地址:https://blog.csdn.net/weixin_40826634/article/details/134661696

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_37708.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注