Google colaboratory Colab不与不同会话共享同一帐户上的存储

Google colaboratory Colab不与不同会话共享同一帐户上的存储,google-colaboratory,Google Colaboratory,我在谷歌硬盘上创建了2个Colab文件。几天前,它们共享相互存储,当我在这个文件上创建一个文件夹时,我可以在另一个文件上看到它。但从昨天起,他们就不再喜欢这样了,他们不再共享存储空间 我尝试创建2个新文件,或重置所有运行时,但结果仍然相同。是的,不同的笔记本使用不同的后端。对于文件共享,您可以使用以下代码段将Google驱动器连接到文件系统,将文件放入驱动器: from google.colab import drive drive.mount('/content/drive') 实际上,co

我在谷歌硬盘上创建了2个Colab文件。几天前,它们共享相互存储,当我在这个文件上创建一个文件夹时,我可以在另一个文件上看到它。但从昨天起,他们就不再喜欢这样了,他们不再共享存储空间


我尝试创建2个新文件,或重置所有运行时,但结果仍然相同。

是的,不同的笔记本使用不同的后端。对于文件共享,您可以使用以下代码段将Google驱动器连接到文件系统,将文件放入驱动器:

from google.colab import drive
drive.mount('/content/drive')

实际上,colab使用的运行时类型与在同一个VM上运行的运行时类型相同,因此可以共享文件。然而,这是一个安全漏洞。事实上,考虑下面的场景:

  • 您在Colab上运行一个私人笔记本,它会将机密数据写入磁盘
  • 同时,你运行一个由黑客编写的公用笔记本,它读取磁盘上的内容并发送给黑客
此外,共享同一个VM意味着共享同一个GPU。TensorFlow之类的库在启动时会抓取所有GPU RAM,因此第一个Colab可以正常运行,而第二个Colab将没有GPU RAM

可能出于这些原因,谷歌似乎已经决定在2019年8月至9月左右为每个Colab配备一个单独的虚拟机(但我还没有找到关于这一变化的官方公告)。对于每种运行时类型,似乎有5个会话同时运行的限制,这意味着您最多可以运行15个VM

不幸的是,尽管这种选择解决了上述问题,但它确实使Colab笔记本电脑难以相互通信。正如@BobSmith所建议的,一个解决方案是通过Google Drive进行通信。以下是方法:

首先,在每个笔记本的开头运行此命令(这将要求您单击一个链接,授权Colab访问您的Google驱动器,并给您一个授权代码,您需要将其复制并粘贴回Colab):

从google.colab导入驱动器
安装(“/content/drive”)
几秒钟后,您将收到以下消息:

Mounted at /content/drive
在做任何其他事情之前,一定要在两个colab中都这样做

现在查看此文件夹的内容:

!ls/内容/驱动器
就我而言,这将输出:

'My Drive'
现在,无论您在
/content/drive/My drive
文件夹中写什么,都可以在两个colab中看到。例如,尝试在一个Colab上运行此命令:

!echo "Hello World!" > "/content/drive/My Drive/this_is_a_test"
然后在另一个Colab上运行此命令:

!cat "/content/drive/My Drive/this_is_a_test"

它将输出“Hello World!”,显示Colab可以通过Google Drive共享数据。

我知道如何使用Google Drive,但问题是我不能在Colab上运行超过1个单元格,例如:单元格1根据单元格2的结果运行,而单元格2同时为单元格1生成结果,它们会连续运行。我可以在几天前这样做,但现在不行了。我想我必须适应这个新的变化