increment_path()函数的用法

increment_path() 函数通常用于生成一个唯一的文件路径,以避免文件名冲突。在 PyTorch Lightning 或其他深度学习框架中,这种函数常用于保存模型权重、日志文件等,确保每次保存都生成一个新的文件路径。

以下是一个简单的示例,展示如何使用 increment_path() 函数:

import os

def increment_path(path, exist_ok=False):
    """自动递增目录路径,防止目录已存在时发生冲突。
    
    参数:
    - path: 基础路径,可以是文件或目录。
    - exist_ok: 如果为 True,则不引发异常,即使目标目录已经存在。
    
    返回:
    - 增量路径字符串。
    """
    if os.path.exists(path) and not exist_ok:
        # 如果目标路径已存在且不允许存在,则引发异常
        raise ValueError(f"Path '{path}' already exists.")
    
    # 获取路径的目录和文件名
    directory, filename = os.path.split(path)
    
    # 获取文件名的前缀和后缀
    prefix, suffix = os.path.splitext(filename)
    
    # 递增文件名的前缀,直到找到一个不存在的路径
    i = 1
    while os.path.exists(os.path.join(directory, f"{prefix}_{i}{suffix}")):
        i += 1
    
    # 构建新的路径
    new_path = os.path.join(directory, f"{prefix}_{i}{suffix}")
    
    return new_path

# 例子:递增保存模型权重的路径
base_path = "model_weights/model"
incremented_path = increment_path(base_path)
print("Incremented Path:", incremented_path)

上述代码的运行结果:

在这个例子中,increment_path() 函数接受一个基础路径 base_path,然后递增数字(在文件名中添加下划线和数字)以生成一个新的路径,确保新路径是唯一的

这对于保存模型的权重文件等场景非常有用

相关推荐

  1. ExcelVLOOKUP函数

    2023-12-08 17:20:05       27 阅读
  2. MATLAB中cell函数

    2023-12-08 17:20:05       63 阅读
  3. Excel中INDIRECT函数

    2023-12-08 17:20:05       63 阅读
  4. C++函数默认值

    2023-12-08 17:20:05       50 阅读
  5. MATLAB --- fullfile()函数

    2023-12-08 17:20:05       59 阅读
  6. MATLAB --- dlmread( )函数

    2023-12-08 17:20:05       66 阅读
  7. MATLAB --- interp1( )函数

    2023-12-08 17:20:05       58 阅读
  8. python中print函数

    2023-12-08 17:20:05       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-08 17:20:05       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-08 17:20:05       97 阅读
  3. 在Django里面运行非项目文件

    2023-12-08 17:20:05       78 阅读
  4. Python语言-面向对象

    2023-12-08 17:20:05       88 阅读

热门阅读

  1. 折半查找(数据结构实训)

    2023-12-08 17:20:05       65 阅读
  2. 博客摘录「 C语言之二维数组赋值」

    2023-12-08 17:20:05       45 阅读
  3. kali常用命令

    2023-12-08 17:20:05       54 阅读
  4. springboot快速入门

    2023-12-08 17:20:05       60 阅读
  5. 虚拟化之Stage2地址翻译

    2023-12-08 17:20:05       53 阅读
  6. 对音频打上标签,从标签开始播放

    2023-12-08 17:20:05       63 阅读
  7. oceanBase存储返回多个值

    2023-12-08 17:20:05       60 阅读
  8. 【android开发-20】android中notification的用法讲解

    2023-12-08 17:20:05       47 阅读