Server - PyTorch Lighting Warning 的 seed_everything、gpus、max_epochs、checkpoint 等解决方案

本文主要是介绍Server - PyTorch Lighting Warning 的 seed_everything、gpus、max_epochs、checkpoint 等解决方案,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎关注我的CSDN:https://spike.blog.csdn.net/
本文地址:https://spike.blog.csdn.net/article/details/132673146

Img
PyTorch Lightning 是一个用于简化 PyTorch 代码的高级框架,可以帮助你快速构建、训练和部署深度学习模型。核心思想是将模型的逻辑和工程分离,只需要关注模型的核心部分,而不用担心数据加载、分布式训练、优化器等细节。PyTorch Lightning 还提供了一系列的工具和插件,让你可以轻松地使用各种加速器、日志系统、可视化工具等,目标是让你用最少的代码实现最高的性能,同时保持 PyTorch 的灵活性和可扩展性。

1. seed_everything

Warning 如下:

LightningDeprecationWarning: pytorch_lightning.utilities.seed.seed_everything has been deprecated in v1.8.0 and will be removed in v1.10.0. Please use lightning_lite.utilities.seed.seed_everything instead.
pytorch_lightning.utilities.seed.seed_everything has been deprecated in v1.8.0 and will be”

原因是 pytorch_lightning 升级至 v1.8.0 版本,seed_everything 函数文件更换位置,修改方案如下:

# from pytorch_lightning.utilities.seed import seed_everything
from lightning_lite.utilities.seed import seed_everythingif args.seed:  # 使用 PyTorch Lighting 设置随机种子seed_everything(args.seed)

参考:PyTorch Lightning - pytorch_lightning.utilities.seed

2. Trainer(gpus=1)

Warning 如下:

LightningDeprecationWarning: Setting Trainer(gpus=1) is deprecated in v1.7 and will be removed in v2.0. Please use Trainer(accelerator='gpu', devices=1) instead.

原因 gpus 参数需要更丰富的设置方式,替换成 accelerator + devices 参数,即:

trainer = pl.Trainer.from_argparse_args(args,# ...gpus=None,accelerator='gpu',devices=args.gpus
)

参考:CSDN - Pytorch-Lightning中的训练器–Trainer

3. max_epochs

Warning 如下:

PossibleUserWarning: max_epochs was not set. Setting it to 1000 epochs. To train without an epoch limit, set max_epochs=-1.

原因是建议设置 max_epochs 参数,默认是 -1,即:

trainer = pl.Trainer.from_argparse_args(args,# ...max_epochs=-1,
)

4. Checkpoint

Warning:

UserWarning: Checkpoint directory mydata/output_dir/checkpoints exists and is not empty.
rank_zero_warn(f"Checkpoint directory {dirpath} exists and is not empty.")

原因是 Checkpoint 文件夹已经存在,建设根据时间戳设置 output_dir,即:

timestamp=$(date +%s)
--output_dir "mydata/output_dir_${timestamp}/"

参考:shell脚本获取当前时间戳

5. cpu_offload

Warning:

Config parameter cpu_offload is deprecated use offload_optimizer instead

将 DeepSpeed 的 CPU 负载参数,由 cpu_offload 设置成 offload_optimizer,修改 deepspeed_config.json,即

"zero_optimization": {# ..."offload_optimizer": {"device": "cpu","pin_memory": true,"buffer_count": 4,"fast_init": false},
},

参考:

  • GitHub - What is the non-deprecated alternative for “cpu_offload”
  • DeepSpeed - optimizer-offloading

这篇关于Server - PyTorch Lighting Warning 的 seed_everything、gpus、max_epochs、checkpoint 等解决方案的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/223187

相关文章

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

C++高效内存池实现减少动态分配开销的解决方案

《C++高效内存池实现减少动态分配开销的解决方案》C++动态内存分配存在系统调用开销、碎片化和锁竞争等性能问题,内存池通过预分配、分块管理和缓存复用解决这些问题,下面就来了解一下... 目录一、C++内存分配的性能挑战二、内存池技术的核心原理三、主流内存池实现:TCMalloc与Jemalloc1. TCM

MyBatis Plus 中 update_time 字段自动填充失效的原因分析及解决方案(最新整理)

《MyBatisPlus中update_time字段自动填充失效的原因分析及解决方案(最新整理)》在使用MyBatisPlus时,通常我们会在数据库表中设置create_time和update... 目录前言一、问题现象二、原因分析三、总结:常见原因与解决方法对照表四、推荐写法前言在使用 MyBATis

Java死锁问题解决方案及示例详解

《Java死锁问题解决方案及示例详解》死锁是指两个或多个线程因争夺资源而相互等待,导致所有线程都无法继续执行的一种状态,本文给大家详细介绍了Java死锁问题解决方案详解及实践样例,需要的朋友可以参考下... 目录1、简述死锁的四个必要条件:2、死锁示例代码3、如何检测死锁?3.1 使用 jstack3.2

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

Oracle修改端口号之后无法启动的解决方案

《Oracle修改端口号之后无法启动的解决方案》Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生,这一问题通常源于​​配置错误或环境冲突​​,而非端口修改本身,以下是系... 目录一、问题根源分析​​​二、保姆级解决方案​​​​步骤1:修正监听器配置文件 (listener.

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存