模型加载pytorch版本不匹配的解决思路

news2024/11/5 23:26:49

模型部署总是会遇到pytorch版本推理与训练不匹配的问题,一般报错:

AttributeError: Can't get attribute '_rebuild_parameter_v2' on <module 'torch._utils' from '/usr/local/python3.9.0/lib/python3.9/site-packages/torch/_utils.py'>

提示pytorch 中_utils.py没有实现这个方法’_rebuild_parameter_v2’ ,这就表明新的pytorch增加了一些方法,而旧的pytorch没有实现。为了避免环境升级各种乱七八糟的事情,那我们就手动实现它,在仅实现这个function的情况下实现pytorch的伪升级。

(1)首先看pytorch的github

发现’_rebuild_parameter_v2’这个方法是新添加的
在这里插入图片描述
源码路径实现在这:
在这里插入图片描述

(2)那我们就把这段代码抄过来

攒成下面一块:

import torch._utils
try:
    torch._utils._rebuild_parameter_v2
except AttributeError:
    def _set_obj_state(obj, state):
        if isinstance(state, tuple):
            if not len(state) == 2:
                raise RuntimeError(f"Invalid serialized state: {state}")
            dict_state = state[0]
            slots_state = state[1]
        else:
            dict_state = state
            slots_state = None

        for k, v in dict_state.items():
            setattr(obj, k, v)

        if slots_state:
            for k, v in slots_state.items():
                setattr(obj, k, v)
        return obj
    def _rebuild_parameter_v2(data, requires_grad, backward_hooks, state):
        param = torch.nn.Parameter(data, requires_grad)
        param._backward_hooks = backward_hooks
        param = _set_obj_state(param, state)
        return param
    torch._utils._rebuild_parameter_v2 = _rebuild_parameter_v2

这样,每次加载模型的时候,把上面那段代码拷贝上去,就能执行,不会报错了
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2134841.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

医疗机构关于DIP/DRG信息化建设

推进DIP/DRG支付方式改革是一项系统性工程&#xff0c;牵一发而动全身。作为河北省DIP试点医院&#xff0c;河北医科大学第二医院将信息化与创新性管理理念融合&#xff0c;用好支付工具做好精细化管理&#xff0c;积极应对改革。 ■ 改革背景 国家医疗保障局制定的《DRG/DIP支…

18060 删除空格

**思路**: 1. 使用两个指针&#xff0c;一个指向当前字符位置&#xff0c;另一个指向下一个非空格字符应该放置的位置。 2. 遍历字符串&#xff0c;如果当前字符不是空格&#xff0c;则将其移动到目标位置指针处&#xff0c;并递增目标位置指针。 3. 最后在目标位置指针处添加字…

scratch作品练习-- 猫猫接月饼

作品展示 猫猫接月饼 作品设计 1&#xff09;内容&#xff1a; 嫦娥在最上方抛落月饼&#xff0c;猫猫要移动接住从上方掉落的月饼&#xff0c;接到月饼得分&#xff0c;没接住月饼落地消失。 2&#xff09;角色&#xff1a; 猫猫、月饼、嫦娥 3&#xff09;背景&#xff…

这么好用的桌面插件 怎么能不分享给你!

这么好用的桌面插件 怎么能不分享给你&#xff01;大家可能需要在桌面上创建一些功能&#xff0c;比如时间&#xff0c;日期&#xff0c;时钟&#xff0c;天气等&#xff0c;这时候就需要桌面插件才能实现&#xff0c;小编找过很多桌面插件或者桌面组件&#xff0c;发现了一个宝…

从0开始学习 RocketMQ:分布式事务消息的实现

消息队列中的事务&#xff0c;主要是解决消息生产者和消息消费者数据一致性的问题。 应用场景 比如订单系统创建订单后&#xff0c;会发消息给购物车系统&#xff0c;将已下单的商品从购物车中删除。 由于购物车删除商品这一步骤并不是用户下单支付这个主流程中的核心步骤&a…

Redhat 7,8系(复刻系列) 一键部署Oracle21-xe rpm

Oracle21c-xe前言 无论您是开发人员、DBA、数据科学家、教育工作者,还是仅仅对数据库感兴趣,Oracle Database Express Edition (XE) 都是理想的入门方式。它是全球企业可依赖的强大的 Oracle Database,提供简单的下载、易于使用和功能齐全的体验。您可以在任何环境中使用该…

orangepi部署web环境

orangepi web环境搭建 mysql安装mysql卸载 FTP安装java安装tomcat安装Maven配置 mysql安装 查看MySQL安装包 接下来可以使用以下命令安装MySQL服务器&#xff1a; 安装MySQL 8.0 # 安装最新版本 sudo apt install -y mysql-server # 安装指定版本 sudo apt install -y mysql…

Mystic 会是 Midjourney 的终结者吗?

作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话: 这两年来 Midjourney 一直是互联网上最好的人工智能图像生成器。它制作了一些我们所见过的最流行和最具争议的 AI 图像,Midjourney 无与伦比的快速连贯性和照片级真实感使其领先于 OpenAI、谷歌和亚…

喜报!普罗格入选软件百强企业榜单

金秋九月&#xff0c;一个象征着成熟与收获的季节&#xff0c;普罗格迎来了发展历程中的又一里程碑。近期&#xff0c;普罗格以稳健的发展和创新的技术入选武汉软件百强企业榜单。在面对2024年复杂经营环境挑战的背景下&#xff0c;这一荣誉更显珍贵&#xff0c;彰显了武汉企业…

MySQL迁移达梦报错,DMException: 第1 行附近出现错误: 无效的表或视图名[ACT_GE_PROPERTY]

达梦数据库选好模式和登录用户&#xff0c;迁移时的目标模式名要和达梦的当前登录的用户名相同&#xff0c;否则查询的时候需要“form 模式名.表名”&#xff0c;只from表名就会报表不存在的错误。

单机快速部署开源、免费的分布式任务调度系统——Apache DolphinScheduler

本文主要为大家介绍Apache DolphinScheduler的单机部署方式&#xff0c;方便大家快速体验。 环境准备 需要Java环境&#xff0c;这是一个老生常谈的问题&#xff0c;关于Java环境的安装与配置期望大家都可以熟练掌握。 验证java环境 java -version 下载安装包并解压 使用wg…

深度挖掘| 如何高效实现Cloudera 安装之基础环境搭建

Cloudera Manager是CDH市场领先的管理平台。它以其强大的数据管理和分析能力&#xff0c;帮助企业能够轻松驾驭海量数据&#xff0c;实现数据的实时分析与洞察。 作为业界第一的端到端 Apache Hadoop 的管理应用&#xff0c;Cloudera Manager对CDH的每个部件都提供了细粒度的可…

ROS2 std_msg 报错!

编译ros2时候报错如下&#xff1a; CMake Error at CMakeLists.txt:11 (find_package): By not providing "Findstd_msg.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "…

80V转5V4A同步降压WT6037

80V转5V4A同步降压WT6037 WT6037 被定义为一款高压同步降压转换器&#xff0c;其设计可在 10V 至 90V 的宽泛工作电压区间内稳定运行。该转换器尤其适用于需承受宽电压输入范围的电池组系统&#xff0c;诸如 12V 至 72V 的电池组&#xff0c;以及 60V 至 90V 的降压应用场景。…

Python编码系列—Python建造者模式:构建复杂对象的优雅之道

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…

Spring-cloud-gateway报错问题总结

1. 访问接口出现 There was an unexpected error (typeService Unavailable, status503).Unable to find instance for order 假设我们有服务 spring-appication-name: order 但命名路由id 也为order 就会出现这类错误 因为 gateway 有默认路由

Mysql | 知识 | 理解是怎么加锁的

文章目录 一、怎么加行级锁的&#xff1f;二、唯一索引加锁2.1 唯一索引等值查询1、记录存在的情况2、记录不存在的情况 2.2 唯一索引范围查询a. 针对「大于」的范围查询b. 针对「大于等于」的范围查询的情况。c. 「小于」范围查询&#xff0c;记录「不存在」表中的情况d. 「小…

JMeter压力测试

下载地址 第一步:修改配置,并启动软件 进入bin目录,修改jmeter.properties文件中的语言支持为language=zh_CN,然后点击jmeter.bat 启动软件。 第二步:添加线程组 第三步:添加Http取样

STL之Vector容器

容器 容器的分类 序列式容器(Sequence containers) - 每个元素都有固定位置--取决于插入时机和地点和元素值无关 - vector、deque、list、stack、queue 关联式容器(Associated containers) - 元素位置取决于特定的排序准则&#xff0c;和插入顺序无关 - set、multiset、ma…

ARADEX伺服驱动器电源维修G565 D565/60 M5ref

伺服驱动器维修常见故障&#xff1a;无显示、缺相、过流、过压、欠压、过热、过载、接地、参数错误、有显示无输出、模块损坏。我们本着诚信待人的宗旨&#xff0c;凭借娴熟的技术和丰富的维修经验&#xff0c;为国内外诸多企业修了各种不同的伺服电机、驱动器和电源。 短路保…