自己搭建resnet18网络并加载torchvision自带权重的操作
作者:找不到服务器1703 发布时间:2021-11-28 12:24:33
标签:resnet18,网络,加载,torchvision,权重
直接搭建网络必须与torchvision自带的网络的权重也就是pth文件的结构、尺寸和变量命名完全一致,否则无法加载权重文件。
此时可比较2个字典逐一加载,详见
pytorch加载预训练模型与自己模型不匹配的解决方案
import torch
import torchvision
import cv2 as cv
from utils.utils import letter_box
from model.backbone import ResNet18
model1 = ResNet18(1)
model2 = torchvision.models.resnet18(progress=False)
fc = model2.fc
model2.fc = torch.nn.Linear(512, 1)
# print(model)
model_dict1 = model1.state_dict()
model_dict2 = torch.load('resnet18.pth')
model_list1 = list(model_dict1.keys())
model_list2 = list(model_dict2.keys())
len1 = len(model_list1)
len2 = len(model_list2)
minlen = min(len1, len2)
for n in range(minlen):
if model_dict1[model_list1[n]].shape != model_dict2[model_list2[n]].shape:
continue
model_dict1[model_list1[n]] = model_dict2[model_list2[n]]
model1.load_state_dict(model_dict1)
missing, unspected = model2.load_state_dict(model_dict2)
image = cv.imread('zhn1.jpg')
image = letter_box(image, 224)
image = image[:, :, ::-1].transpose(2, 0, 1)
print('Network loading complete.')
model1.eval()
model2.eval()
with torch.no_grad():
image = torch.tensor(image/256, dtype=torch.float32).unsqueeze(0)
predict1 = model1(image)
predict2 = model2(image)
print('finished')
# torch.save(model.state_dict(), 'resnet18.pth')
来源:https://blog.csdn.net/qq_34288751/article/details/114163057
0
投稿
猜你喜欢
- 如何让用户也能修改密码? 好了,照下面添加到你要添加的地方去:<%id = Request(&qu
- 前言首先,我们开发的项目会有多个版本.其次,我们的项目版本会随着更新越来越多,我们不可能因出了新版本就不维护旧版本了.那么,我们就需要对版本
- 今天设计models时,用到了choice这个属性,用来限制用户做出选择的范围。比如说性别的选择(男或女)。class User(Abstr
- 网上搜一下对应的版本号,版本号相对应。安装django有两种方式:1.pip安装pip install django这个方法我用的时候已经报
- 函数内省(function introspection)除了__doc__属性, 函数对象还有很多属性,对于下面的函数,可以使用dir()查
- 不知道做网络程序的朋友是否重视COOKIES作用域对于多域名或 主域与WWW二级域名同时共用一站点,设置Cookies的作用域,让整个网站用
- 自己写的小工具,可以直接获取csdn文章并转换为markdown格式效果图核心代码from PySide2.QtWidgets import
- 在这篇文章中,我将展示如何在 CentOS/RHEL 7、Debian 以及它的衍生版本比如 Ubuntu(最新的 Ubuntu 16.04
- 问题:SQL Server 2000中设计表时如何得到自动编号字段?解答:具体步骤如下:①像Access中的自动编号字段右键你的表-->
- 我就废话不多说了,大家还是直接看代码吧!stdi, stdo, stde = sys.stdin, sys.stdout, sys.stde
- 近日,朋友写一个关于成绩管理的系统,其中遇到一个小问题。如果按照SQLSERVER的ORDER 排序时,比如遇到两个100分,结果必然是名次
- Python 跟 Python3 完全就是两种语言1、 import caffe FAILED环境为 Ubuntu 16 cuda
- 在PCA中有遇到,在这里记录一下计算矩阵的特征值个特征向量,下面给出几个示例代码:在使用前需要单独import一下>>>
- 私有变量表示方法在变量前加上两个下划线的是私有变量。class Teacher(): def __init__(self,nam
- 1.字符串的字符转换1.1.字符转换的概念在前面说的的字符串替换,是将字符串中的一个子串替换成了新的子串,如果我们想对字符串中的某些字符进行
- UserAgent = Trim(Lcase(Request.Serve
- 1.打开apache的httpd.conf文件,找到# Virtual hosts#Include conf/extra/httpd-vho
- 一、介绍QQ空间相册的个性化利器,能对照片进行效果的优化、文字编辑等等。从设计上使用了创新的手法,尽量减少用户的思考。其中,通过界面的特殊表
- 这篇文章主要介绍了Python3如何对urllib和urllib2进行重构,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
- <input type=button value=刷新 onclick="hist