【问题标题】:Why does my code only work in Google Colab but not on my local machine?为什么我的代码只能在 Google Colab 中运行,而不能在我的本地机器上运行?
【发布时间】:2021-08-11 09:41:29
【问题描述】:

我尝试在 Google Colab 中运行 this 代码,它运行良好。如果我在家用计算机上运行它或将 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):

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

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

【问题讨论】:

  • 您在 Colab 和本地计算机上的 Python 版本是否相同?它们是什么?
  • 我有 Python 3.8.5 而 Google Colab 有 3.7.10。这有什么不同吗?
  • 可能。如果您使用通过一个版本的 Python 腌制的数据,则在使用不同版本的 Python 取消腌制时可能会遇到困难。
  • 另外,您可能有不同的软件包版本,这可能是一个原因。
  • 好的,谢谢,我试试看:)

标签: python lambda jupyter-notebook google-colaboratory jupyter-lab


【解决方案1】:

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

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

应该是

collate_fn=data_processing

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

【讨论】:

    猜你喜欢
    • 2017-01-17
    • 1970-01-01
    • 2022-06-14
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    • 1970-01-01
    • 2016-12-13
    相关资源
    最近更新 更多