参数名的映射,小心使用strict=False

news2024/11/28 6:27:10

从vgg16-397923af.pth里读取的数值应该和加载预训练模型后model.load_state_dict参数一致。
而我的不一致!
原因:在载入参数到模型键值的不匹配,所以使用了strict=False。
解决办法

  • 进行参数名的映射,将不匹配的参数名进行对应
  • 看到另一种方法——将即将要载入的参数中不匹配的键多余部分,‘module.’删除就可匹配【未尝试】
params = {k.replace('module.',''):v for k,v in checkpoint['state_dict'].items()} 	#替换将要载入的参数的键的不匹配部分

#	进行参数名的映射
import numpy as np
import torch
import torchvision
from torchvision import models
from PIL import Image
from matplotlib import pyplot as plt
import torchvision.transforms as transforms
from src import fcn_resnet50, resnet50
from model_fcn8s import VGG, fcn_vgg16

pretrain_backbone = True
a = ["layer1.0.weight", "layer1.0.bias", "layer1.2.weight", "layer1.2.bias", "layer2.0.weight", "layer2.0.bias", "layer2.2.weight", "layer2.2.bias", "layer3.0.weight", "layer3.0.bias", "layer3.2.weight", "layer3.2.bias", "layer3.4.weight", "layer3.4.bias", "layer4.0.weight", "layer4.0.bias", "layer4.2.weight", "layer4.2.bias", "layer4.4.weight", "layer4.4.bias", "layer5.0.weight", "layer5.0.bias", "layer5.2.weight", "layer5.2.bias", "layer5.4.weight", "layer5.4.bias"]
b = ["features.0.weight", "features.0.bias", "features.2.weight", "features.2.bias", "features.5.weight", "features.5.bias", "features.7.weight", "features.7.bias", "features.10.weight", "features.10.bias", "features.12.weight", "features.12.bias", "features.14.weight", "features.14.bias", "features.17.weight", "features.17.bias", "features.19.weight", "features.19.bias", "features.21.weight", "features.21.bias", "features.24.weight", "features.24.bias", "features.26.weight", "features.26.bias", "features.28.weight", "features.28.bias"]
struct = [(2, 64), (2, 128), (3, 256), (3, 512), (3, 512)]
backbone = VGG(num_classes=21, struct=struct)
if pretrain_backbone is True:
    weights_dict = torch.load("/home/hyq/hyq/projects/fcn/vgg16-397923af.pth")
    model_dict = {}
    param_mapping = dict(zip(b, a))
    for k, v in weights_dict.items():
        if k not in b:
            continue
        model_dict[param_mapping[k]] = v
    # backbone.load_state_dict(torch.load("/home/hyq/hyq/projects/fcn/vgg16-397923af.pth"), strict=False)
    backbone.load_state_dict(model_dict)
    for name, param in backbone.state_dict().items():
        print(f"{name}: {param}") 
        # print(name, end=' ')

在加载预训练模型处修改
在这里插入图片描述

从vgg16-397923af.pth里读取的数值应该和加载预训练模型后model.load_state_dict参数一致

【pytorch载入模型参数报错以及解决办法,小心使用strict=False】

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

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

相关文章

不看不知,道,一键ai绘画软件也能生成这么好看的图片

结构: 前阵子,我朋友发了几张男生的照片在朋友圈,我还以为是她脱单了,赶紧给她送上了祝福。 她收到我的祝福后,笑嘻嘻地跟我解释说:“那几张图是我用AI绘画软件生成的,是不是很看起来很真呀&a…

一款剧情特别优秀的ARPG 游戏《FC魔神英雄传》

文章目录 介绍游戏发行游戏玩法 游戏剧情详细介绍游戏开始阶段剧情任务汇总:草原阶段冰川阶段海边阶段丛林阶段沙漠阶段湖泊阶段草原2阶段海边2阶段冰川2阶段山脉阶段 世界地图汇总 道具系统装备系统战斗系统战斗规则魔法技能魔法学习方式 游戏优点游戏缺点该游戏值…

接口测试 使用 rest-assured 进行接口测试

目录 前言 正文 1.HTTP 状态码 2.节点值验证 3.格式化打印 json 4.参数化 5.响应时间 6.JSON Schema Validation 前言 使用Rest-Assured进行接口测试是一个很好的选择。Rest-Assured是一个基于Java的开源库,专门用于简化和增强RESTful接口的测试。它提供了…

我在VScode学Java类与对象(Java的类与对象、this关键字)第一辑

我的个人博客主页:如果’真能转义1️⃣说1️⃣的博客主页 关于Java基本语法学习---->可以参考我的这篇博客:《我在VScode学Java》 关于我在VScode学Java(Java方法method) 类是描述了一组有相同特性(属性&#xff09…

python_selenuim获取csdn新星赛道选手所在城市用echarts地图显示

文章目录 ⭐前言⭐selenuim获取新星赛道选手主页💖 获取参赛选手主页思路分析💖 获取参赛选手ip属地思路分析💖 echarts可视化展示 ⭐结束 ⭐前言 大家好,我是yma16,本文分享python_selenuim获取csdn新星赛道选手所在…

Requests —— Requests模块获取响应内容

Requests模块获取响应内容 响应包括响应行、响应头、响应正文内容,这些返回的响应信息都可以通过Requests模块获取。这些 获取到的响应内容也是接口测试执行得到的实际结果。 获取响应行 获取响应头 获取其它响应信息 代码示例: # 导入requests模块…

特征工程和多项式回归

特征工程的定义 特征工程(Feature Engineering)特征工程是将原始数据转化成更好的表达问题本质的特征的过程,使得将这些特征运用到预测模型中能提高对不可见数据的模型预测精度。 特征工程简单讲就是发现对因变量y有明显影响作用的特征&#…

【kubernetes系列】Kubernetes之配置dashboard安装使用

Kubernetes之配置dashboard 概述 Dashboard 是基于网页的 Kubernetes 用户界面。 你可以使用 Dashboard 将容器应用部署到 Kubernetes 集群中,也可以对容器应用排错,还能管理集群资源。 你可以使用 Dashboard 获取运行在集群中的应用的概览信息&#x…

MybatisPlus-2

springmybatismybatisplus 创建mapper接口&#xff0c;继承BaseMapper<obj>&#xff0c;obj为你需要操作的数据表创建对应的实体类配置数据源 4.设置配置文件 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.spri…

华为OD机试真题 Java 实现【拔河比赛】【2023 B卷 100分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#…

JavaWeb 速通Servlet(上)

目录 一、Servlet快速入门 1.为什么需要Servlet&#xff1f; 2.什么是Servlet? 3.Servlet开发说明 : 4.入门案例 : 二、 Servlet生命周期 1.浏览器请求Servlet的流程分析&#xff08;重要&#xff09; : 2.生命周期 : 1 初始化阶段 2 处理请求阶段 3 终止阶段 三、Serv…

归并排序C语言

基本思想 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法&#xff08;Divide andConquer&#xff09;的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子序列有序&a…

火焰图性能监测

准备工作——安装perf 我是在github的codespace上搞的&#xff0c;可以按下面的方式安装perf&#xff1a; sudo apt install linux-tools-generic sudo apt install linux-cloud-tools-azure参考在WSL2中使用perf性能剖析工具 测试程序——简单的C程序 弄一个无限循环的C程…

SpringMVC的数据响应-19

新的上面也是相当于放到域当中了 sel表达式&#xff0c;取你键值对的名称&#xff0c;使用前创造jsp文件 这个地域里面放什么都行 上面的内容也是ModelandView弄个文件记下来 1、新的方法&#xff0c;你在参数这里可以加一个ModelandView 往里面放点数据和视图名称 这种方法也能…

【hadoop】centos7.6+hadoop3.1.1搭建分布式hadoop环境——包含各类问题解决方案

本文针对centos7.4即以上版本的hadoop环境搭建&#xff0c;因为这部分搭建是个很复杂且很容易出错的内容&#xff0c;所以在结合了多种搭建方案后给出最适宜当前版本的搭建。 目录 一、准备阶段环境要求软件版本要求配置部署环境 二、部署阶段部署ZooKeeper安装ZooKeeper并配置…

华为云CodeArts Check代码检查新手操作指南

代码检查服务是基于云端实现代码质量管理的服务&#xff0c;软件开发者可在编码完成后执行多语言的代码静态检查和安全检查&#xff0c;获取全面的质量报告&#xff0c;并提供缺陷的分组查看与改进建议&#xff0c;有效管控代码质量&#xff0c;确保产品原生高质量和产品安全&a…

【文末福利】我用英飞凌的PSoC™ 62搞了点智能家居的创意

【英飞凌创意创客大赛】基于Infineon和ChatGPT的人工智能语音小管家 概要 本文给大家介绍一个Infineon和ChatGPT的人工智能语音小管家项目&#xff0c;该项目是博主架构师李肯参加由RT-Thread与英飞凌联合举办的2023英飞凌创意创客大赛的参赛项目&#xff0c;旨在探索智能硬件智…

微服务day1

一、认识微服务 1、单体架构 将业务的所有功能集中在一个项目中开发&#xff0c;打成一个包部署。 优点 架构简单部署成本低 缺点 耦合度高 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fPfsQXAn-1689593800699)(https://picture.wangkay.tec…

GPT-1,GPT-2,GPT-3 InstructGPT论文学习笔记

Gpt-1 论文&#xff1a;《Improving Language Understanding by Generative Pre-Training》 GPT-1网络结构 无监督,使用12层transforer decoder结构,每一层维度是768,12个注意力heads token embedding矩阵,经过transformer decoder处理后,经过线性层和softmax层,得到下一个toke…

自定义一个SpringBoot starter 怎么实现

文章目录 1、创建一个空项目2、在新建的空项目中添加starter模块3、添加autoconfigure模块4、配置starter模块的pom文件5、配置autoconfigure模块1. 配置pom依赖2、创建xxProperties配置类3、创建服务提供类xxxService4、创建自动配置类xxxGenerateAutoConfiguration5 、META-I…