开发者

pytorch模型保存方式

开发者 https://www.devze.com 2024-09-10 09:24 出处:网络 作者: Mei2iJ
目录pytorch模型保存1.保存加载整个模型(不推荐)2.只保存加载模型参数(推荐)总结pytorch模型保存
目录
  • pytorch模型保存
    • 1.保存加载整个模型(不推荐)
    • 2.只保存加载模型参数(推荐)
  • 总结

    pytorch模型保存

    保存模型主要分为两类:

    • 保存整个模型
    • 只保存模型参数

    1.保存加载整个模型(不推荐)

    保存整个网络模型,网络结构+权重参数

    torch.save(model,'net.pth')

    加载整个网络模型(可能比较耗时)

    model=torchjavascript.load('net.pth')

    2.只保存加载模型参数(推荐)

    保存模型的权重参数(速度快,占内存少)

    torch.save(model.state_dict(),'net_params.pth')

    load 模型参数

    因为我们只保存了 模型的参数,所以需要先定义一个网络对象,然后再加载模型参数。

    model=myNeandroidt()

    #将模型参数加载到新模型中,torch.load返回的是一个OrderedDict,说明.state_dict()只是把所有模型的参数都已OrderedDict的形式存下来。

    state_dict=torch.load('net_params.pth')
    model.load_state_dict(state_dict)

    Note:保存模型进行推理测试时,只需保存训练好的模型的权重参数,即推荐第二种方法。

    load_state_dict的参数strict=False
    
    new_model.load_state_dict(state_dict,strict=False)

    如果哪一天我们需要重新写这个网络的,比如使用new_model,如果直接load会出现unexpected key.

    但是加上strict=False可以很容易地加载预训练的参数(注意检查key是否匹配),直接忽略不匹配的key,对于匹配的kejsy则进行正常的赋值。

    总结

    以上为个人经验,希望能给大家一个参考,也希望大javascript家多多支持编程客栈(wwjsw.cppcns.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号