Errno 9 错误的文件描述符 Detectron2

问题描述

我在 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 环境中,我看到了此错误

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 进行了尝试,但发生了同样的错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...