如何解决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 举报,一经查实,本站将立刻删除。