一、简介
Google Colab 是一个免费的 Jupyter 环境,用户可以用它创建 Jupyter notebook,在浏览器中编写和执行 Python 代码,以及其他基于 Python 的第三方工具和机器学习框架,如 Pandas、PyTorch、Tensorflow、Keras、Monk、OpenCV 等。
那Google Colab与Jupyter又有什么关系呢?事实上,Jupyter 是一个开放源代码项目,而 Colab 是在 Jupyter 基础之上开发的。通过 Colab,无需下载、安装或运行任何软件,就可以使用 Jupyter 笔记本并与他人共享。
Google Colab 的好处在于,不需要任何配置就能直接上手使用,并提供免费的 GPU,你可以和任何人共享实时代码、数学公式、数据可视化结果、数据处理、数值模拟、机器学习模型等各种项目。
总结起来,Google Colab主要有如下一些优点:
- 提供了免费的 Jupyter notebook 环境;
- 带有预安装的软件包;
- 完全托管在谷歌云上;
- 用户无需在服务器或工作站上进行设置;
- Notebook 会自动保存在用户的 Google Drive 中;
- 提供基于浏览器的 Jupyter notebook;
- 完全免费,且提供 GPU 和 TPU(Pro 用户可以使用更多资源,但需要付费);
- 支持 Python 2 和 Python 3;
- 提供两种硬件加速器:GPU 和 TPU
二、基本使用
Google Colab 分为免费版和pro版,免费版一次只可以使用一块GPU,且有时长限制,pro版需要付费,可以使用多块GPU且没有时长限制,并且在容量上有一定扩展。
2.1 新建Notebook
新建一个笔记本有两种方式,第一种是在在云端硬盘中右键创建。
如果右键后没有发现有这一个选项,那是因为云端硬盘还没有安装Colab。这时在右击后选择“关联更多应用”,然后搜索colab并下载,之后就可以通过右键创建了。
安装完成后,右击空白处,然后选择【Google Colaboratory 】 打开。
另外一种就是使用Google Colab的浏览器版,点击链接打开Google Colab。
然后,点击【文件】->【新建笔记本】。使用这种方法新建的笔记本时,会在云端硬盘的根目录自动创建一个叫Colab Notebook的文件夹,新创建的笔记本就保存在这个文件夹中。
2.2 载入Notebook
当然,我们也可以打开云端硬盘中的已经存在的笔记本,比如从Github中导入笔记本。如果关联了Github账户,可以选择一个账户中的Project,如果没有关联,可以先关联一下,如果其中有ipynb文件就可以在Colab中打开。
2.3 Notebook面板
面板的内容说明如下:
- 标题:笔记本的名称
- 代码块:分块执行的代码
- 文件浏览:Colab为笔记本分配的实例空间
- 代码执行程序:用于执行笔记本程序的服务器
- 代码段:常用的代码段,比如装载云端硬盘
- 命令面板:常用的命令,比如查找/替换
- 终端:文件浏览下的终端
2.4 连接代码
点击连接按钮后, 系统会连接代码执行程序,此时可以看到消耗的RAM和磁盘的相关数据。
- RAM:虚拟机运行内存,更大内存意味着更大的算力;
- 磁盘:虚拟机文件的储存空间,要注意的是购买更多云端硬盘存储空间不能增加可用磁盘空间;
如果想要获得更大的算力,可以Colab Pro。在打开笔记本后,默认的文件路径是"/content",这个路径也是执行笔记本时的路径,同时我们一般把用到的各种文件也保存在这个路径下。
在点击".."后即可返回查看根目录"/"(),可以看到根目录中保存的是一些虚拟机的环境变量和预装的库等等。不要随意修改根目录中的内容,以避免运行出错。
2.5 执行代码
当我们的代码编写完成之后,就可以点击【运行】按钮来执行代码块。代码块开始执行后,按钮就会进入转圈的状态,表示【正在执行】。如果在有代码块执行的情况下,继续点击其他代码块的【运行】按钮,则这些代码块进入【等待执行】的状态,直到当前的代码块执行完成之后才会顺序依次执行其他代码块。
2.6 管理会话
会话就是当前连接到代码执行程序的笔记本,通过点击【管理会话】即可查看当前的所有会话,点击【终止】即可断开代码执行程序。用户所能连接的会话数量是有限的,因此到达上限时再开启新会话需要主动断开之前的会话。
三、示例演示
3.1 数据科学
借助 Colab,我们可以充分利用常用 Python 库的强大功能来分析和可视化数据。下方的代码单元格使用 NumPy 生成一些随机数据,并使用 Matplotlib 可视化这些数据。
import numpy as np
from matplotlib import pyplot as plt
ys = 200 + np.random.randn(100)
x = [x for x in range(len(ys))]
plt.plot(x, ys, '-')
plt.fill_between(x, ys, 195, where=(ys > 195), facecolor='g', alpha=0.6)
plt.title("Sample Visualization")
plt.show()
然后我们运行此段代码,就可以得到Matplotlib的可视化图。
3.2 机器学习
借助 Colab,只需使用几行代码,即可实现导入图像数据集、用图像数据集训练图像分类器,以及评估模型。Colab 笔记本会在 Google 的云服务器中执行代码,也就是说,无论您所用机器的功能如何,大家都可以利用 Google 硬件(包括 GPU 和 TPU)的强大性能,而这些操作只要有个浏览器即可。
关于如何使用Colab进行机器学习方面的内容,大家可以参考: