Colaboratory
常见问题解答
基础知识
Colaboratory 是什么?
Colaboratory 简称“Colab”,是 Google Research 团队开发的一款产品。在 Colab 中,任何人都可以通过浏览器编写和执行任意 Python 代码。它尤其适合机器学习、数据分析和教育目的。从技术上说,Colab 是一种托管式 Jupyter 笔记本服务。用户无需进行设置,就可以直接使用,同时还能获得 GPU 等计算资源的免费使用权限。
它真的可以免费使用吗?
是的。Colab 可以免费使用。
这有点好得令人难以置信。有什么限制吗?
Colab 的资源供应没有保证,也不会无限量供应,使用量限额有时会变化。只有这样,Colab 才能免费提供资源。如需了解详情,请参阅资源限制
如果用户希望获得更加可靠的权限来使用更加优质的资源,可以订阅 Colab Pro。
Jupyter 和 Colab 有什么区别?
Jupyter 是一个开放源代码项目,而 Colab 是在 Jupyter 基础之上开发的。通过 Colab,您无需下载、安装或运行任何软件,就可以使用 Jupyter 笔记本并与他人共享。
使用 Colab
我的笔记本存储在什么地方?我可以共享它们吗?
Colab 笔记本存储在 Google 云端硬盘上,也可以从 GitHub 加载。您可以共享 Colab 笔记本,就如同您使用 Google 文档或表格一样。只需点击任一 Colab 笔记本右上角的“共享”按钮,或按照相关 Google 云端硬盘文件共享说明操作。
共享笔记本时,具体会共享哪些内容?
如果您选择共享笔记本,笔记本的全部内容(包括文本、代码、输出项和注释)都会被共享。您可以通过依次选择修改 > 笔记本设置 > 保存此笔记本时忽略代码单元格输出项,将代码单元格输出项排除在保存或共享范围之外。系统不会共享您正在使用的虚拟机(包括您已设置的所有自定义文件和库)。因此,对于那些会安装和加载任何您笔记本需要的自定义库或文件的单元格,最好将它们纳入其中。
我可以将现有的 Jupyter/IPython 笔记本导入 Colab 吗?
可以。只需从“文件”菜单中选择“上传笔记本”即可。
如何搜索 Colab 笔记本?
您可以使用 Google 云端硬盘搜索 Colab 笔记本。点击笔记本视图左上方的 Colab 徽标将显示云端硬盘中的所有笔记本。您还可以依次选择文件 > 打开最近打开过的笔记本,从中查找您最近打开过的笔记本。
我的代码在哪里执行?如果关闭浏览器窗口,我的执行状态会怎样?
代码会在专供您的帐号使用的虚拟机中执行。虚拟机闲置一段时间后会被删除,并且 Colab 服务为虚拟机强制设置了最长有效期。
如何获取数据?
您可以按照相关说明从 Google 云端硬盘下载您已创建的任何 Colab 笔记本,也可以通过 Colab 的“文件”菜单下载笔记本。所有 Colab 笔记本均以开放源代码 Jupyter 笔记本格式 (.ipynb) 存储。
如何重置运行我的代码的虚拟机?为什么这项设置有时用不了?
请依次选择运行时 > 将该运行时恢复出厂设置,将分配给您的所有托管虚拟机恢复到原始状态。在虚拟机运行状况不佳的情况下(例如,意外覆盖系统文件或安装了不兼容的软件时),该操作会非常有用。Colab 会限制重置操作的频率,以免不必要的资源消耗。如果重置失败,请稍后再试。
为什么 drive.mount() 有时会失败,并提示“超时”?为什么在通过 drive.mount() 装载的文件夹中执行的 I/O 操作有时会失败?
当文件夹中的文件或子文件夹数量太多时,Google 云端硬盘操作可能会出现超时问题。如果有成千上万个项目直接包含在“我的云端硬盘”顶级文件夹中,那么装载该云端硬盘可能会超时。重复尝试可能最终会取得成功,因为在超时之前,失败的尝试会在本地缓存部分状态。如果您遇到此问题,请尝试将直接包含在“我的云端硬盘”中的文件和文件夹移至子文件夹。如果在 drive.mount() 运行成功后从其他文件夹中读取数据,可能会出现类似问题。访问含有许多项目的任何文件夹中的项目都可能会导致错误,例如 OSError: [Errno 5] Input/output error (python 3) 或 IOError: [Errno 5] Input/output error (python 2)。同样,您只需将直接包含的项目移至子文件夹中,便可解决此问题。
请注意,通过将文件或子文件夹移入回收站来将其删除可能还不足够;如果执行上述操作后问题仍未解决,请务必再清空回收站。
资源限制
为什么 Colab 不会对资源供应做出保证?
为了能够免费提供计算资源,Colab 需要保持即时调整使用量限额和硬件供应情况的灵活性。Colab 中的可用资源会不时变化,以适应需求的波动性,以及总体需求的增长和其他因素。
有些用户希望超越资源限制,在 Colab 中完成更多工作。很多用户向我们反映,他们希望 GPU 更快、笔记本运行时间更长、内存更大,还希望提高使用量限额,并减少其波动性。为了服务这些想要在 Colab 中完成更多工作的用户,我们迈出了第一步,推出了 Colab Pro。我们的长期目标是继续提供免费版 Colab,同时以可持续的方式增长,以满足用户的需求。如果您希望超越免费版 Colab 的资源限制,在 Colab 中完成更多工作,请尝试 Colab Pro,并告诉我们您的使用感受。
Colab 的使用量限额是多少?
Colab 之所以能够免费提供资源,部分原因在于它的使用量限额是时有变化的动态限额,并且它不会保证资源供应或无限供应资源。也就是说,总体使用量限额、空闲超时时长、虚拟机最长生命周期、可用 GPU 类型以及其他因素都会不时变化。Colab 不会公布这些限额,原因之一是它们不仅可能、而且有时确实会快速变化。
与使用 Colab 长时间运行计算的用户相比,系统有时会向交互地使用 Colab 或最近资源用量较少的用户优先提供 GPU 和 TPU。因此,使用 Colab 长时间运行计算的用户,或最近资源用量较大的用户,更有可能遇到使用量限制,并导致他们暂时无法使用 GPU 和 TPU。计算需求较高的用户可以在使用 Colab 界面的同时,在自己的硬件上运行本地运行时。如果用户希望获得更高、更稳定的使用量限额,可以订阅 Colab Pro。
Colab 提供哪些类型的 GPU?
Colab 中的可用 GPU 类型会不时变化。只有这样,Colab 才能免费提供这些资源。Colab 中的可用 GPU 通常包括 Nvidia K80、T4、P4 和 P100。在任何给定时间,您都无法选择在 Colab 中连接的 GPU 类型。如果想要更稳定地使用 Colab 最快的 GPU,用户可以订阅 Colab Pro。
请注意,我们绝对禁止使用 Colab 挖掘加密货币,这样做可能会导致您的帐号在 Colab 中被完全禁用。
在 Colab 中,笔记本可以运行多长时间?
笔记本要连接到虚拟机才能运行,虚拟机的最长生命周期可以达到 12 小时。笔记本如果处于空闲状态的时间过长,也会与虚拟机断开连接。虚拟机的最长生命周期和空闲超时行为可能会随时变化,也会根据您的使用情况调整。只有这样,Colab 才能免费提供计算资源。如果用户希望虚拟机的生命周期更长、对空闲超时行为的限制更宽松,并希望这两项随时间变化的幅度小一些,可以订阅 Colab Pro。
Colab 提供多大内存?
Colab 虚拟机提供的内存大小会不时变化(但在虚拟机的生命周期内是稳定不变的)。(不时调整内存有利于我们持续免费提供 Colab。)如果 Colab 检测到您可能需要额外的内存,系统有时会自动为您分配包含额外内存的虚拟机。如果用户希望在 Colab 中获得更多、更稳定的内存,可以订阅 Colab Pro。
如何才能充分利用 Colab?
Colab 中的资源会优先提供给最近资源用量较少的用户,以防少数用户独占有限的资源。要充分利用 Colab,请在完成工作后关闭 Colab 标签页,并在没有实际需求时避免选用 GPU。这样,您在 Colab 中遇到使用量限额的情况就会减少。如果用户希望超越免费版 Colab 的资源限制,可以订阅 Colab Pro。
系统显示一条消息,提示我没有使用 GPU。我该怎么办?
Colab 提供可选的加速计算环境,包括 GPU 和 TPU。在 GPU 或 TPU 运行时中执行代码不一定代表将使用 GPU 或 TPU。为了避免达到 GPU 使用量上限,我们建议如果没有使用 GPU,请切换为标准运行时。切换方法是:依次选择运行时 > 更改运行时类型,然后将“硬件加速器”设为“无”。
要查看如何在 Colab 中利用 GPU 和 TPU 运行时的示例,请参阅支持 GPU 的 TensorFlow 和 Colab 中的 TPU 示例笔记本。
其他问题
Colab 支持哪些浏览器?
Colab 支持大多数主流浏览器,并且在 Chrome、Firefox 和 Safari 的最新版本上进行了最全面的测试。
Colab 与 colaboratory.jupyter.org 有什么关系?
2014 年,我们与 Jupyter 开发团队合作发布了该工具的早期版本。自此以后,在内部使用反馈的指引下,Colab 得以不断改进。
是否支持其他编程语言?
Colab 主要支持 Python 及其第三方工具生态系统。据悉,用户希望 Colab 支持其他 Jupyter 内核(例如 R 或 Scala)。我们打算支持这些 Jupyter 内核,但还无法提供预计实现时间。
如果我发现错误或遇到问题,我该联系谁?
您可以打开任意一个 Colab 笔记本,然后转到“帮助”菜单并选择“发送反馈…”。
为什么提示我启用第三方 Cookie?
为了安全地显示各种输出项,Colab 会使用 HTML iframe 和托管在多个单独来源的 Service Worker。只有第三方 Cookie 处于启用状态时,浏览器才能在 iframe 中使用 Service Worker。如果您不想针对所有网站都启用第三方 Cookie,还可以在浏览器设置中允许访问以下主机名:googleusercontent.com。
如何更改编辑器的字体?
Colab 针对编辑器使用一般的等宽字体。在大多数现代浏览器中,您都可以配置对哪些字体系列使用等宽设置。下面是一些常见字体系列:
在 Firefox 中,请按照 Firefox 支持文档中的说明配置“等宽”字体。
在 Chrome 中,请转到“chrome://settings/fonts”并修改“宽度固定的字体”部分。
Colab 支持 Python 2 吗?
Python 开发团队已声明 2020 年 1 月 1 日之后不再支持 Python 2。Colab 已停止更新 Python 2 运行时,并且将逐渐停止支持 Python 2 笔记本。我们建议您将重要的笔记本迁移到 Python 3。
要将 Python 2 笔记本的运行时改成 Python 3,请依次选择运行时 > 更改运行时类型,然后选择 Python 3。系统不支持将运行时从 Python 3 更改为 Python 2。要了解将代码从 Python 2 迁移到 Python 3 的相关信息,请参阅将 Python 2 代码迁移到 Python 3 一文。
在哪里可以进一步了解 Colab Pro?
请参阅 Colab Pro 注册页面上的常见问题解答部分。