[深度学习笔记(3)]模型保存与加载

2023-11-04


本系列是博主刚开始接触深度学习时写的一些笔记,写的很早了一直没有上传,趁着假期上传一下,作为分享,希望能帮助到你。

一、模型保存

保存模型/模型参数。

torch.save(obj, f, pickle_module = <module‘ ... ‘>,pickle_protocol=2)

        其中,obj是需要保存的对象,f是类文件对象或一个保存文件名的字符串,pickle_module指用于picking元数据和对象的模块,pickle_protocol指可以覆盖的默认参数。举例说明:

torch.save(model, ‘model.pt’)  #保存整个模型
Torch.save(model.state_dict(), ‘model.pt’)  #保存训练好的网络权重

二、模型加载

1.加载模型

torch.load(f, map_location=None,pickle_module = <module‘ pickle ‘ from ‘ ... ’>)

        其中,f是类文件对象或一个保存文件名的字符串,map_location指一个函数或字典规定如何映射存储设备,pickle_module指用于unpicking元数据和对象的模块(必须匹配序列化文件时的pickle_module)。

2.加载模型参数

torch.nn.Module.load_state_dict(state_dict, strict=True)

        其中,state_dict指保存parameters和persistent buffers的字典。只有包含了可学习参数的层(如卷积层、线性层等)和已注册的命令才有模型的state_dict入口。

举例说明:

#(1)
#保存整个模型
torch.save(model_object, ‘model.pth’)
#加载模型
model = torch.load(‘model.pth’)

#(2)
#保存参数
torch.save(model_object.state_dict(), ‘params.pth’)
#加载模型
model_object=model()
model_object.load_state_dict(torch.load(‘params.pth))

#(2)的模型效果非常差,解决方法:
#(2)plus:
#保存参数
torch.save(model_object.state_dict(), ‘params.pth’)
#加载模型
model_object=model()
model_object.load_state_dict(torch.load(‘params.pth))
model.eval() #固定dropout()和BN层

        其中,model.eval()的作用是固定dropout()和BN层。


总结

        以上就是今天要讲的内容,本文介绍了模型保存与加载的详细代码实现,希望能够帮助到你。如有错误,请及时指出,我们一起进步!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[深度学习笔记(3)]模型保存与加载 的相关文章

随机推荐

  • 小雀和他的王国【牛客练习赛56 E】【Tarjan缩点+树的直径】

    题目链接 首先 如果它本身就是在环内了 那么 任意的破坏环上的任意条边 都是不会影响答案的 所以 我们可以知道 会映像答案的边只有那些桥 于是 做法就变成了Tarjan缩点 然后就变成了一棵树了 我们现在想要构成最大的环 于是任务就变成了找
  • python 查tensorflow版本_查看已安装tensorflow版本

    由于tensorflow版本不同 可能一些函数的调用也有变换 这时候可能需要查看tensorflow版本 可以在终端输入查询命令如下 python import tensorflow as tf tf version 查询tensorflo
  • Android内存优化的10条建议

    合理设置应用的minSdkVersion和targetSdkVersion 使应用可以运行在更多设备上 这可以提高内存利用效率 避免在Application和Activity的onCreate方法中做过多工作 这会占用过多内存 可以将不必要
  • Spring 定时器 No qualifying bean of type [org.springframework.scheduling.TaskScheduler] is defined

    最近项目里面 用了spring的定时任务 一直以来 项目运行的不错 定时器也能正常使用 可是 今天启动项目测试的时候 盯着启动Log看了一阵子 突然间发现 启动的Log中居然有一个异常 虽然一闪而过 但是那熟悉的异常格式还是让我浑身一颤 这
  • 启动hive报错_Power BI连接Hive数据库

    要想实现Powe BI连接Hive数据库 需要安装一个驱动进行配置 同时服务器开启hiveserver2在后台运行 1 下载ClouderaHiveODBC64 https downloads cloudera com connectors
  • windows安装mingw编译c程序

    这篇文章主要介绍在windows下安装mingw 编译c代码的详细步骤 mingw是在windows下面的gcc 有了mingw 以前在linux下面编写的c代码也能在window下面编译运行啦 1 第一步 下载mingw 下载mingw很
  • 从程序员的角度看待算法的学习与研究

    一 引言 算法的重要性和应用场景 提高效率 算法可以帮助我们设计和实现高效的解决方案 在有限的资源下 提高计算机程序或系统的执行速度和效率 解决复杂问题 算法可以提供有效的解决方案来解决各种复杂问题 例如图像处理 自然语言处理 数据分析等领
  • 微软疑断自由软件开发者“活路”,禁止在微软商店发布商业开源

    整理 彭慧中 责编 屠敏 出品 CSDN ID CSDNnews 几周前 微软更新了其应用商店的政策 增加了新的政策 将于下周开始生效 其中包括以下文字 所有定价 都不能 企图从开源或其他普遍免费的软件中获取经济利益 图源SFC 原本大家以
  • Python记3(类与对象、路径、文件、异常处理、抽象基类

    目录 1 Class 1 1 声明类 1 2 类的特殊属性 1 3 创建对象 1 4 构造函数和析构函数 1 5 类方法和静态方法 类变量与实例变量 1 6 公有 保护 私有变量 通过下划线数量和位置区分 1 7 继承 1 7 1 多继承M
  • MATLAB编程(3)——MATLAB依次运行多个脚本.m文件

    问题描述 在做算法对比实验时 经常需要依次运行多个算法的代码 每个算法的入口程序是一个脚本 m文件 当然 算法的脚本文件中又会调用算法自己的子函数 我们期望MATLAB依次运行这些对比算法的脚本 m文件 而不用等到一个算法的程序执行结束后
  • 一次诡异的linux系统重启故障

    情况描述 同事反应说oracle数据库在周末的时候宕了 排查下问题 登到服务器上发现 oracle进程已经不存在 然后ps看了下监听进程 发现也不存在 这时候就怀疑是操作系统重启了 操作系统版本信息 root card paopi log
  • cmake add_subdirectory添加父级目录及其子目录的源码

    cmake add subdirectory添加父级目录及其子目录的源码 1 目录结构 tree main CMakeLists txt main cpp thirdlib CMakeLists txt myprintf cpp mypri
  • perl:取整、四舍五入、向上取整、向下取整

    取整int 四舍五入round 向上取整POSIX ceil 向下取整就是int或者POSIX floor 其中ceil和floor 要使用库POSIX 在perl源代码里加入 usr bin perl use strict use war
  • 为什么我们需要 HTTP/3?QUIC协议成功“上位”。

    TCP 是 Internet 上使用和部署最广泛的协议之一 多年来一直被视为网络基石 随着HTTP 3正式被标准化 QUIC协议成功 上位 UDP 取代 TCP成为基础协议 TCP究竟 输 在哪里 TCP与HTTP的不解之缘 HTTP 超文
  • 获取光标,并且移动至最后

    准备一个元素 div div 调用获取光标方法 传入元素 this keepLastIndex document getElementById sendMessageInput keepLastIndex obj if window get
  • nodeJS ---包管理工具

    包管理工具 一 概念介绍 1 1 包是什么 包 英文单词是 package 代表了一组特定功能的源码集合 1 2 包管理工具 管理 包 的应用软件 可以对 包 进行 下载安装 更新 删除 上传 等操作 借助包管理工具 可以快速开发项目 提升
  • 【React】 18课 简单理解redux

    本章主要讲redux的js文件内的代码原理以及使用方法 简单理解redux是干什么的 其实redux与vuex类似 是用于redux内各组件间通讯的数据存储仓库 首先我们来看以下文件目录结构 在此之前我们需要给React项目安装redux插
  • tensorflow中optimizer minimize自动训练简介和选择训练variable的方法

    本文主要介绍tensorflow的自动训练的相关细节 并把自动训练和基础公式结合起来 如有不足 还请指教 写这个的初衷 有些教程说的比较模糊 没体现出用意和特性或应用场景 面向对象 稍微了解点代码 又因为有限的教程讲解比较模糊而一知半解的初
  • hibernate学习总结

    创建java工程 导入hibernate jar包 配置hibernate cfg xml配置文件 创建数据库以及表 创建实体类 符合javabean规范的 创建实体类对应的xxxx hbm xml文件 完成映射的配置 创建test方法 测
  • [深度学习笔记(3)]模型保存与加载

    本系列是博主刚开始接触深度学习时写的一些笔记 写的很早了一直没有上传 趁着假期上传一下 作为分享 希望能帮助到你 目录 一 模型保存 二 模型加载 1 加载模型 2 加载模型参数 总结 一 模型保存 保存模型 模型参数 torch save