1. 问题现象与初步排查
最近在VLN-CE项目中遇到了一个奇怪的问题:之前能够正常在/home/aq/VLN-CE/data/videos/debug目录下生成视频文件的代码,现在突然不工作了。作为长期从事Linux系统运维和深度学习项目部署的技术人员,我决定彻底排查这个问题。
首先,我检查了最基本的目录权限问题:
bash复制ls -ld /home/aq/VLN-CE/data/videos/debug
输出显示目录存在且权限正常(755),我的用户aq有读写权限。这排除了最基本的权限问题。
接着我查看了最近一次执行的日志文件,发现了一个关键提示:
code复制skipping -- evaluation exists.
这个日志信息表明程序检测到"这次eval的结果已经存在",所以跳过了整个评测流程。由于视频是在rollout/episode step过程中生成的,跳过评测自然就不会产生视频文件。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 问题根源分析
2.1 评测结果缓存机制
VLN-CE项目(Vision-and-Language Navigation in Continuous Environments)的评测系统设计了一个缓存机制。当配置中设置了EVAL.SAVE_RESULTS: True时,系统会在RESULTS_DIR指定的目录下保存评测结果。下次运行相同配置时,系统会检查结果是否已存在,如果存在就直接跳过评测以节省计算资源。
在我的配置中:
yaml复制RESULTS_DIR: data/checkpoints/pretrained/evals
VIDEO_DIR: data/videos/debug
VIDEO_OPTION: ['disk']
这意味着:
- 评测结果会保存在
data/checkpoints/pretrained/evals目录下 - 视频文件应该输出到
data/videos/debug目录 - 视频输出选项设置为保存到磁盘
2.2 为什么之前能生成视频而现在不能
这种情况通常发生在以下场景:
- 第一次运行时,没有历史评测结果,系统完整执行评测流程并生成视频
- 之后运行时,系统检测到已有评测结果,跳过评测流程
- 由于评测被跳过,视频生成步骤也被跳过
