【问题标题】:Can't open large Jupyter Notebook file through local Jupyter Notebook after manipulation in Google Colab在 Google Colab 中操作后,无法通过本地 Jupyter Notebook 打开大型 Jupyter Notebook 文件
【发布时间】:2019-04-18 22:24:13
【问题描述】:

在 Google Colaboratory 工作后,我正在努力在本地打开一个大型 Jupyter Notebook 文件。

我在 Google Colab 中编辑了一个包含大约 230 个单元格的相当大的 Jupyter Notebook 文件。之后,它似乎已通过 Google 的 Backup and Sync 应用程序成功同步到我的本地计算机(macOS 10.14.1)。但是现在当我尝试通过我的 Anaconda Jupyter Notebook在本地打开文件时收到以下错误:

Notebook failed to load

The error was:
TypeError: Cannot read property 'length' of undefined
See the error console for details.
The notebook also failed validation:

Notebook validation failed: 'outputs' is a required property:
{
 "metadata": {
  "id": "t1y7q2Gnm3QT",
  "colab_type": "code",
  "colab": {
   "resources": {
    "http://localhost:8080/static/components/requirejs/require.js": {
     "data": ...(personal data)




# Name                    Version                   Build  Channel
ipython                   6.1.0            py36hf612aae_1  
ipython_genutils          0.2.0            py36h241746c_0  

在另一台计算机上的 Google Colab 中在线编辑后,我可以在本地打开许多其他 .ipynb 文件。然而,其他文件的单元格和代码较少。那么 Google Colab 是否存在某种大小限制?

我的 Jupyter 版本是 4.3.0。

非常感谢任何帮助。

【问题讨论】:

  • 听起来像一个错误。你用什么版本的 Jupyter 打开笔记本?
  • @BobSmith,我的 Jupyter 版本是 4.3.0。

标签: synchronization jupyter-notebook google-colaboratory


【解决方案1】:

出于各种原因,Colab 有时会将带外的大单元格输出存储在单独的 Drive 对象中。当您直接下载 Colab 存储在 Drive 中的 .ipynb 文件时,此类单元格没有输出字段,而是具有 metadata.colab.output_embedded_pa​​ckage_id 字段(实现详细信息,不要依赖此特定名称)。 Jupyter 绊倒了缺少的输出字段。

您可以通过在 colab UI 中使用 File->Download .ipynb 来解决此问题。

【讨论】:

  • 谢谢阿米。解决该同步问题以在我的计算机上自动拥有一个用于离线编辑的工作文件仍然很棒。
【解决方案2】:

感谢@AmiF 关于输出字段问题的输入,我找到了一个简单的解决方法来满足我的需求:

在 Google Colab 中,删除所有输出(>编辑 >清除所有输出)。确保文件保存在 Google Colab 中(自动保存,或通过 >File >Save)。

一旦它同步到我的电脑,我就可以毫无问题地打开它。

【讨论】: