我开发了一个使用 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,如果有帮助的话。这可能是多处理问题还是其他问题?
我得到答案了!
我的理解是这与reduction.py后端代码有关。
如果有人遇到此运行时错误,您可以添加:
if __name__ == '__main__':
import code
code
code
它将解决问题!
检查您的代码中某些使用 num_workers>0 的地方,将其更改为 0
def create_dataloaders(train_dir: str,
test_dir: str,
transform: transforms.Compose,
batch_size: int,
num_workers: int = 0
):