我在Google云端硬盘上创建了2个Colab文件。几天前,他们共享相互存储,当我在该文件上创建文件夹时,我可以在另一个文件上看到它。但是从昨天开始,他们不再喜欢这样,他们不再共享存储空间。
我尝试创建2个新文件,或重置所有运行时,但是结果仍然相同。
答案 0 :(得分:1)
实际上,Colabs使用的运行时类型与在同一VM上运行时相同,因此可以共享文件。但是,这是一个安全漏洞。实际上,请考虑以下情形:
此外,共享相同的VM意味着共享相同的GPU。 TensorFlow之类的库在启动时会抢占所有GPU RAM,因此第一个Colab可以正常运行,而第二个Colab将没有GPU RAM。
可能是由于这些原因,看来Google已决定在2019年8月至9月左右为每个Colab拥有一个单独的VM(但我尚未找到有关此更改的正式公告)。对于每种运行时类型,似乎最多可以同时运行5个会话,这意味着您最多可以运行15个VM。
不幸的是,尽管此选择解决了上述问题,但确实使Colab笔记本彼此之间的通信更加困难。正如@BobSmith所建议的那样,一种解决方案是通过Google云端硬盘进行通信。方法如下:
首先,在每个笔记本的开头运行此命令(这将要求您单击链接,授权Colab访问您的Google云端硬盘,并提供一个您需要复制并粘贴回Colab的授权代码):
from google.colab import drive
drive.mount('/content/drive')
几秒钟后,您会收到以下消息:
Mounted at /content/drive
在执行其他任何操作之前,请确保在两个Colab中都执行此操作。
现在查看此文件夹的内容:
!ls /content/drive
在我的情况下,输出:
'My Drive'
现在您在/content/drive/My Drive
文件夹中写的任何内容都可以在两个Colabs中看到。例如,尝试在一个Colab上运行此代码:
!echo "Hello World!" > "/content/drive/My Drive/this_is_a_test"
然后在另一个Colab上运行此
:!cat "/content/drive/My Drive/this_is_a_test"
它将输出“ Hello World!”,表明Colabs可以通过Google云端硬盘共享数据。
答案 1 :(得分:0)
是的,不同的笔记本使用不同的后端。对于文件共享,您可以使用以下代码段将Google云端硬盘连接到文件系统,从而将文件放入云端硬盘中:
from google.colab import drive
drive.mount('/content/drive')