深度学习:目录的获取 绝对路径的使用

本文详细介绍了在不同操作系统中获取当前目录、上级目录及上上级目录的方法,并讨论了在命令行运行可执行文件时,Windows和Linux的路径搜索差异。理解这些基础知识对于日常的文件操作和程序执行至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 获取当前目录
print(os.getcwd())

# 获取上级目录
print(os.path.abspath(os.path.join(os.getcwd(), "..")))

# 获取上上级目录
print(os.path.abspath(os.path.join(os.getcwd(), "../..")))

# 绝对路径的使用
r'绝对路径地址  C:\.\...'


''     : 当前同级目录
'/'    :根目录
'./'   :当前同级目录
'../'  :上级目录
当使用命令行运行可执行文件时:

(1)Windows 会搜索当前目录和 PATH 变量,所以不用加 “./”。

(2)Linux 不会搜索当前目录,它会到 PATH 环境变量的路径去搜索程序文件,所以需要加上 “./” 来指定到当前目录下去查找应用程序,如果不想加 “./” ,可以直接到把点号加到环境变量 PATH 中即可。

### 深度学习中相对路径的使用方法 在深度学习领域,尤其是涉及模型加载、数据读取以及日志记录等场景时,相对路径是一种常用的技术手段。它不仅简化了代码逻辑,还提高了程序的可移植性和灵活性。 #### 基本概念 相对路径是指相对于当前工作目录或其他指定基目录定义的文件或目录位置[^1]。这种路径不依赖于绝对地址,因此可以更方便地适应不同的运行环境。 #### Python中的实现方式 以下是几种常见的方式用于获取和设置相对路径: ##### 方法一:基于`os.path` 利用标准库模块 `os` 可以轻松构建和解析相对路径。 ```python import os current_dir = os.getcwd() # 获取当前工作目录 relative_path = os.path.join(current_dir, 'models', 'my_model.h5') # 构建相对路径 print(relative_path) ``` 这种方法适用于简单的跨平台开发需求,并且兼容性较好。 ##### 方法二:借助`pathlib.Path` 现代Python推荐使用`pathlib`来处理文件系统相关的操作,其语法更为直观清晰。 ```python from pathlib import Path project_root = Path(__file__).resolve().parent # 当前脚本所在的目录 model_file = project_root / 'data' / 'pretrained_model.h5' if model_file.exists(): print(f"Model file found at {model_file}") else: print("No pretrained model available.") ``` 此代码片段展示了如何动态定位到项目的子目录并验证目标资源是否存在[^2]。 #### 实际应用案例——Keras模型加载 假设有一个预训练好的神经网络存储在一个名为`cnn_weights.hdf5`的HDF5格式文件里,在调用函数`load_model()`之前需要确保提供正确的相对路径指向该权重文件的位置[^3]。 ```python from tensorflow.keras.models import load_model def get_model(model_filepath='models/cnn_weights.hdf5'): try: return load_model(model_filepath) except Exception as e: raise FileNotFoundError(f"Failed to locate the specified model due to error: {e}") loaded_model = get_model() ``` 上述例子说明了当尝试从特定子文件夹下检索已保存下来的深层架构实例时应采取何种策略。 ### 注意事项 - **一致性维护**:始终确认所使用的相对路径在整个应用程序生命周期内的有效性; - **异常捕获机制**:对于可能失败的操作(比如找不到预期的数据集或者配置表单),应当提前设计好相应的错误提示信息以便排查问题根源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值