预训练后的模型加载方法pckl文件

图片的问题:
暗场,照明光不进入相机镜头,检测反射光;明场,照明光进入相机镜头
暗场对应的像素和实际的倍率不确定
明场的倍率相对确定,暗场由于光线非直射,缺陷成像的形状和尺寸不能保证

预训练模型的恢复

import torch
model = torchvision.models.resnet50(pretrained=False)  # 假设是ResNet-50模型

加载权重文件,赋值给模型

with open('path_to_weights_file/weights.pckl', 'rb') as file:
    state_dict = pickle.load(file)
model.load_state_dict(state_dict)

加载其他组件:如果存在其他.pckl文件,如优化器状态或训练配置,同样使用pickle.load()加载它们。例如,加载优化器状态:

with open('path_to_optimizer_file/optimizer.pckl', 'rb') as file:
    optimizer_state = pickle.load(file)
optimizer.load_state_dict(optimizer_state)

//--------------------------------------------------------------

import torch
import torch.nn as nn
import pickle

# 定义一个简单的模型
class SimpleModel(nn.Module):
    def __init__(self):
        super(SimpleModel, self).__init__()
        self.fc1 = nn.Linear(10, 20)
        self.fc2 = nn.Linear(20, 10)
        self.fc3 = nn.Linear(10, 1)

    def forward(self, x):
        x = torch.relu(self.fc1(x))
        x = torch.relu(self.fc2(x))
        x = self.fc3(x)
        return x

model = SimpleModel()

# 从多个文件中加载参数
state_dict = model.state_dict()
for name in state_dict.keys():
    with open(f'{name}.pkl', 'rb') as f:
        state_dict[name] = pickle.load(f)

model.load_state_dict(state_dict)
model.eval()

print("模型参数已从多个文件中加载并恢复模型。")

# 使用模型进行预测
input_tensor = torch.randn(1, 10)
output = model(input_tensor)
print(output)
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值