运行时错误:在当前进程完成引导阶段之前尝试启动新进程

问题描述 投票:0回答:2

我开发了一个使用 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,如果有帮助的话。这可能是多处理问题还是其他问题?

python torch
2个回答
0
投票

我得到答案了!

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

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

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

它将解决问题!


0
投票

检查您的代码中某些使用 num_workers>0 的地方,将其更改为 0

 def create_dataloaders(train_dir: str,
    test_dir: str,
    transform: transforms.Compose,
    batch_size: int,
    num_workers: int = 0
    ):
© www.soinside.com 2019 - 2024. All rights reserved.