建设部网站政策法规网站建设yuue
web/
2025/9/26 2:25:40/
文章来源:
建设部网站政策法规,网站建设yuue,北京十大装饰装修公司,wordpress评论主题序列化与反序列化
序列化就是说内存中的某一个对象保存到硬盘当中#xff0c;以二进制序列的形式存储下来#xff0c;这就是一个序列化的过程。 而反序列化#xff0c;就是将硬盘中存储的二进制的数#xff0c;反序列化到内存当中#xff0c;得到一个相应的对象#xff…序列化与反序列化
序列化就是说内存中的某一个对象保存到硬盘当中以二进制序列的形式存储下来这就是一个序列化的过程。 而反序列化就是将硬盘中存储的二进制的数反序列化到内存当中得到一个相应的对象这样就可以再次使用这个模型了。
序列化和反序列化的目的就是将我们的模型长久的保存。
Pytorch中序列化和反序列化的方法 torch.save(obj, f): obj表示对象 也就是我们保存的数据可以是模型张量 dict等等 f表示输出的路径 torch.load(f, map_location): f表示文件的路径 map_location指定存放位置 CPU或者GPU 这个参数挺重要在使用GPU训练的时候再具体说。 第一种方法比较懒保存整个的模型架构 比较费时占内存 第二种方法是只保留模型上的可学习参数 等建立一个新的网络结构然后放上这些参数即可所以推荐使用第二种。 下面通过代码看看具体怎么使用
只保留模型参数的话应该怎么再次使用
模型断点续训练
断点续训练技术就是当我们的模型训练的时间非常长而训练到了中途出现了一些意外情况比如断电了当再次来电的时候我们肯定是希望模型在中途的那个地方继续往下训练这就需要我们在模型的训练过程中保存一些断点这样发生意外之后我们的模型可以从断点处继续训练而不是从头开始。 所以模型训练过程中设置checkpoint也是非常重要的。
那么就有一个问题了 这个checkpoint里面需要保留哪些参数呢 我们可以再次回忆模型训练的五个步骤 数据 - 模型 - 损失函数 - 优化器 - 迭代训练。 在这五个步骤中我们知道数据损失函数这些是没法变得 而在迭代训练过程中我们模型里面的可学习参数 优化器里的一些缓存是会变的 所以我们需要保留这些东西。所以我们的checkpoint里面需要保存模型的数据优化器的数据还有迭代到了第几次。 下面通过人民币二分类的实验模拟一个训练过程中的意外中断和恢复看看怎么使用这个断点续训练
发生了一个意外中断但是我们设置了断点并且进行保存那么我们下面就进行恢复 从断点处进行训练也就是上面的第6个epoch开始我们看看怎么恢复断点训练 所以在模型的训练过程当中 以一定的间隔去保存我们的模型保存断点在断点里面不仅要保存模型的参数还要保存优化器的参数。这样才可以在意外中断之后恢复训练。
GPU的使用
系统学习Pytorch笔记十 模型的保存加载、模型微调、GPU使用及Pytorch常见报错
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81949.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!