RuntimeError:在当前进程完成其引导阶段之前尝试启动一个新进程

Posted

技术标签:

【中文标题】RuntimeError:在当前进程完成其引导阶段之前尝试启动一个新进程【英文标题】:RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase 【发布时间】:2021-12-30 10:28:10 【问题描述】:

我开发了一个使用 Pytorch 执行神经网络建模的代码。我的代码在我的 Pycharm 控制台中运行良好,但是当我从脚本运行它时它不起作用。我检查了几次,没有发现任何明显的问题。

我得到的完整错误是:

运行时错误: 已尝试在 当前进程已完成其引导阶段。

    This probably means that you are not using fork to start your
    child processes and you have forgotten to use the proper idiom
    in the main module:

        if __name__ == '__main__':
            freeze_support()
            ...

    The "freeze_support()" line can be omitted if the program
    is not going to be frozen to produce an executable.

我的代码中的错误似乎源于我的培训师(更具体地说,在最后一行,即“val_split=0.1)”:

trainer.fit(
        X_tab=X_tab,
        target=target,
        n_epochs=5,
        batch_size=256,
        val_split=0.1)

我使用 Python 3.7 和 Windows,如果有帮助的话。这可能是多处理问题还是其他问题?

【问题讨论】:

【参考方案1】:

我得到了答案!

我的理解是这与 reduction.py 后端代码有关。

如果有人遇到此运行时错误,您可以添加:

if __name__ == '__main__':
    import code
    code
    code   

它会解决问题!

【讨论】:

以上是关于RuntimeError:在当前进程完成其引导阶段之前尝试启动一个新进程的主要内容,如果未能解决你的问题,请参考以下文章

在当前进程完成其引导阶段之前尝试启动一个新进程

Linux系统开机引导和启动过程-img文件

Linux的进程管理和计划任务

linux开启过程详解

RuntimeError:线程“Dummy-1”中没有当前事件循环

multiprocessing进程开发RuntimeError