为什么我的代码只能在 Google Colab 中运行,而不能在我的本地计算机上运行?

Why does my code only work in Google Colab but not on my local machine?

我尝试 运行 this 在 Google Colab 中编写代码,但效果很好。如果我 运行 它在我的家庭计算机上或连接 Google Colab 与我的本地计算机它给我错误:

EOFError: Ran out of input

AttributeError: Can't pickle local object 'main.<locals>.<lambda>'

他们的出现是因为这个功能:

test_loader = data.Dataloader(#Some unimportant parameters
collate_fn=lambda x: data_processing(x, 'valid'))

for i, _data in enumerate(test_loader):

我知道我不能 pickle lambda 函数,但它在 Google Colab 中确实有效。但是由于时间和计算能力的原因,我需要运行在我的本地计算机上。

我在 PyCharm 和 JupyterNotebook 以及 Colab 中使用本地计算机(通过 Jupyter)进行了尝试,但其中 none 有效。错误也不是因为导入版本,我也尝试了更新版本,它在 Google Colab 中工作。

对于正在寻找此问题解决方案的任何其他人: 函数不应该是:

collate_fn=lambda x: data_processing(x, 'valid'))

应该是

collate_fn=data_processing

(没有括号和参数;“有效”参数是多余的)