0

我正在使用 Detectron2 在 google colab 中进行对象检测,它运行成功,但我不得不迁移到使用 CentOS 7.4 和 Conda 的集群 HPC。我已经安装了所有要求,目前运行脚本没有出现错误,但它卡在 DefaultTrainer 类的函数 resume_or_load 中的无限睡眠循环中。当我停止它时,会出现此回溯。

Traceback (most recent call last):
    File "new_train.py", line 138, in <module>
        trainer.resume_or_load(resume=False)
    File "/hpcfs/home/mj.patino/.local/lib/python3.7/site-packages/detectron2/engine/defaults.py", 
    line 353, in resume_or_load
       checkpoint = self.checkpointer.resume_or_load(self.cfg.MODEL.WEIGHTS, resume=resume)
    File "/hpcfs/home/mj.patino/.local/lib/python3.7/site-packages/fvcore/common/checkpoint.py", line 
    215, in resume_or_load
       return self.load(path, checkpointables=[])
    File "/hpcfs/home/mj.patino/.local/lib/python3.7/site-packages/fvcore/common/checkpoint.py", line 
    140, in load
       path = self.path_manager.get_local_path(path)
    File "/hpcfs/home/mj.patino/.local/lib/python3.7/site-packages/iopath/common/file_io.py", line 
    1109, in get_local_path
        path, force=force, **kwargs
    File "/hpcfs/home/mj.patino/.local/lib/python3.7/site-packages/iopath/common/file_io.py", line 
    764, in _get_local_path
        with file_lock(cached):
    File "/hpcfs/home/mj.patino/.conda/envs/tesisEnv/lib/python3.7/site- 
    packages/portalocker/utils.py", line 160, in __enter__
        return self.acquire()
    File "/hpcfs/home/mj.patino/.conda/envs/tesisEnv/lib/python3.7/site-packages/portalocker/utils.py", line 239, in acquire
        for _ in self._timeout_generator(timeout, check_interval):
    File "/hpcfs/home/mj.patino/.conda/envs/tesisEnv/lib/python3.7/site- 
    packages/portalocker/utils.py", line 152, in _timeout_generator
        time.sleep(max(0.001, (i * check_interval) - since_start_time))
    KeyboardInterrupt

跟踪错误非常困难,但我发现错误具体发生在 fcntl.flock 函数中。当我以与 Google Colab 中的检测器相同的方式尝试此功能时,它起作用了,但是在我的 conda env 中,我看到了这个错误

OSError [errno 9]: Bad file descriptor

当脚本尝试从 model_zoo 下载预训练并在我的本地驱动器中的文件中使用 fcntl.flock() 函数时,会发生此错误。此函数接收 io.Textiowrapper 对象并正确描述我的本地驱动器中的现有文件以及 LockFlags NON_BLOCKING 和 EXCLUSIVE。我已经检查了文件权限,并且我有读写权限。

我已经搜索过,但我没有得到它为什么会发生的答案,有人知道我该如何解决这个错误吗?

太感谢了

PD:另外,我通过安装 python 3.7.9、3.7.10 和 3.9.4 进行了尝试,并且出现了同样的错误

4

0 回答 0