在 Google Colab 中操作后无法通过本地 Jupyter Notebook 打开大型 Jupyter Notebook 文件
我在 Google Colaboratory 中处理大型 Jupyter Notebook 文件后,很难在本地打开它。
我在 Google Colab 中编辑了一个相当大的 Jupyter Notebook 文件,大约有 230 个单元格。之后,它似乎已通过 Google 的备份和同步应用程序成功同步到我的本地计算机 (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。
任何帮助都非常感谢。
感谢@AmiF 关于输出字段问题的意见,我找到了一个简单的解决方案来满足我的需求:
在 Google Colab 中,删除所有输出(>编辑 >清除所有输出)。确保文件已保存在 Google Colab 中(自动保存,或通过 >文件 >保存保存)。
一旦它同步到我的电脑,我就可以毫无问题地打开它。
出于各种原因,Colab 有时会将大型单元格输出存储在单独的 Drive 对象中。当您下载 .ipynb 文件时,Colab 会直接将其存储在 Drive 中,此类单元格没有输出字段,而是具有 metadata.colab.output_embedded_pa​​ckage_id 字段(实现细节,不要依赖此特定名称)。Jupyter 因缺少输出字段而出错。
您可以通过在 colab UI 中使用 File->Download .ipynb 来解决此问题。