这篇文章教你如何应用 Google Colab,更好地利用免费资源。Google Colab 是一个免费的 Jupyter 环境,用户可以用它创建 Jupyter notebook,在浏览器中编写和执行 Python 代码,以及其他基于 Python 的第三方工具和机器学习框架,如 Pandas、PyTorch、Tensorflow、Keras、Monk、OpenCV 等。Google Colab 的好处在于,不需要任何配置就能直接上手应用,并供应免费的 GPU,你可以和任何人共享实时代码、数学公式、数据可视化结果、数据处理、数值模拟、机器学习模型等各种项目。以前,机器之心也曾经介绍过很多关于 Colab 的知识点,比如这些:
谷歌 Colab 有了 V100 加持,薅羊毛快乐再次加倍
20 种小技巧,玩转 Google Colab
本文将介绍如何用 Python 应用 Google Colab,以及一些 Colab 应用技巧。项目地址:https://github.com/towardsai/tutorials/tree/master/google_colab_tutorial为什么大家都爱 ColabColab 的优点包括:
供应了免费的 Jupyter notebook 环境;
带有预安装的软件包;
完全托管在谷歌云上;
用户无需在服务器或工作站上进行配置;
Notebook 会自动保存在用户的 Google Drive 中;
供应基于浏览器的 Jupyter notebook;
完全免费,且供应 GPU 和 TPU(Pro 用户可以应用更多资源,但需要付费);
支持 Python 2 和 Python 3;
供应两种硬件加速器:GPU 和 TPU。
第一步:启动 Google Colab我们可以应用 Colab 在 Web 浏览器上直接运转 Python 代码,应用指南:https://mktg.best/d7b6u。启动窗口随之打开,弹窗中供应了多项功能:
它供应了创建 notebook 以及从不同来源上传和选择的选项,比如 GitHub、Google Drive 或本地计算机。从 GitHub 上传 Notebook我们可以应用项目 URL,或者搜索组织和用户等方法,直接从 GitHub 上传 Python 代码。应用 URL 的方法上传项目的方法如下图所示:
启动 Google Colab
从弹框中选择 GitHub 这一项。
输入 GitHub 项目 URL 并搜索以获取代码
将完整代码一键上传到 Google Colab notebook
同样地,用户可以通过按名称、日期、所有者或者修改日期过滤保存的 notebook,直接从 Google Drive 上传代码。
从 Kaggle 上传数据从 Kaggle 生成 API Token来自 Kaggle 的数据可以直接上传到 Colab,不过这需要 Kaggle 的 API Token 才能完成数据导入,方法如下:
打开 Kaggle
转至「我的账户」
向下滚动到「API」部分
如果需要,先单击「Expire API Token」以删除先前的 token
点击「Create New API Token」,生成一个新的 token 并下载一个名为「kaggle.json」的 JSON 文件
「kaggle.json」文件包含用户名和密钥,如下所示:
从 Kaggle 上传数据的方法将「kaggle.json」文件保存在本地计算机上。安装 Kaggle 软件包:!pip install -q kaggle导入包:from google.colab import files上传本地文件「kaggle.json」:files.upload()
检查 Colab notebook 是否与 Kaggle 正确连接:!kaggle datasets list
从 Kaggle 下载任意比赛数据:!kaggle competitions download -c competitive-data-science-predict-future-sales
Kaggle 数据将在 Colab 中下载和上传,如下所示:
从 Google Drive 中读取文件Colab 还供应从 Google Drive 读取数据的功能。导入包import globimport pandas as pdfrom google.colab import drive挂载 Google Drivedrive.mount('/gdrive')这一步要求填写 Google Drive 的授权码:
授权码输入框
单击链接并生成授权码
从 Google Drive 读取 CSV 文件
file_path = glob.glob("/gdrive/My Drive/***.csv")for file in file_path: df = pd.read_csv(file) print(df)
将运转时硬件加速器配置为 GPUGoogle Colab 供应免费的 GPU 硬件加速器云服务。在机器学习和深度学习中需要同时处理多个计算,高性能 GPU 的价格很高,但非常重要。
GPU 通过并行化供应优秀的性能,可在一次调用中启动数百万个线程。尽管与 CPU 相比,GPU 的 clock speed 较低,且缺少多核管理功能,但 GPU 的表现通常比 CPU 好。在 Colab 中配置 GPU 硬件加速器配置方法如下:
选择 Runtime → Change runtime type
在弹出窗口中选择「GPU」
检查 Colab 中 GPU 的详细信息导入重要的包import tensorflow as tffrom tensorflow.python.client import device_lib检查 GPU 加速器tf.test.gpu_device_name()
检查用于 GPU 的硬件device_lib.list_local_devices()
应用 GPU 的代码示例在未选择运转时 GPU 的情况下检查可用 GPU 的数量,使其配置为「None」。
import tensorflow as tfno_of_gpu = len(tf.config.experimental.list_physical_devices('GPU'))print("Total GPUS:", no_of_gpu)
硬件加速器为 None,因此 GPU 数量的值为 0。将运转时硬件加速器配置为 GPU:
import tensorflow as tfno_of_gpu =len(tf.config.experimental.list_physical_devices('GPU'))print("Total GPUS:", no_of_gpu)
硬件加速器为 GPU,因此 GPU 数量值为 1。在 GPU 上执行张量乘法:try: with tf.device('/device:GPU:1'): tensor1 = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) tensor2 = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]) result = tf.matmul(tensor1, tensor2) print(result)except RuntimeError as exception: print(exception)
张量乘法结果。将 GitHub repo 复制到 Google DriveGitHub repo 代码可以复制和存储到 Google Drive 中,具体方法如下:挂载 Google Drivefrom google.colab import drivedrive.mount('/content/gdrive')
进入 Google drive,创建目录「project」。%cd gdrive/My Drive/mkdir project%cd project/
复制 GitHub repo,例如:!git clone https://github.com/saniyaparveez/youtube_video_type_prediction.git
检查复制的项目!ls
Colab 魔法Colab 供应许多有趣的 trick,包括多个可以执行快速操作的命令,这些命令通常应用 % 作为前缀。Colab 魔法命令列表%lsmagic
本地目录%ldir
获取 Notebook 历史%historyCPU 时间%time
系统运转多久?!uptime
展示可用和已用的内存!free -hprint("-"*100)
展示 CPU 产品规格!lscpuprint("-"*70)
列出所有运转虚拟机进程%%shecho "List all running VM processes."ps -efecho "Done"
在 HTML 中嵌入文本%%html<marquee>Towards AI is a great publication platform</marquee>设计 HTML 格式#@title Personal Details#@markdown Information.Name = 'Peter' #@param {type: "string"}Age = 25 #@param {type: "slider", min: 1, max: 100}zip = 1234 #@param {type: "number"}Date = '2020-01-26' #@param {type: "date"}Gender = "Male" #@param ['Male', 'Female', 'Other']#@markdown —print("Submitting the form")print(string_type, slider_value, number, date, pick_me)print("Submitted")
在 Google Colab 中生成 HTML 格式。
单元格执行输出绘图Google Colab 还可用于数据可视化。以下代码和图展示了 Google Colab 对一个以上多项式的绘图,Y = X³+X²+X。x = np.arange(-10,10)y = np.power(x,3)y1 = np.power(x,3) + np.power(x,2) + xplt.scatter(x,y1,c="red")plt.scatter(x,y)
以下代码和图用于生成热图:import matplotlib.pyplot as pltimport numpy as npimport seaborn as snslength = 10data = 5 + np.random.randn(length, length)data += np.arange(length)data += np.reshape(np.arange(length), (length, 1))sns.heatmap(data)plt.show()
Google Colab 中的 TPUGoogle Colab 应用 TPU(张量处理单元)进行 Tensorflow 图上的加速。TPU 是谷歌开发的、专为神经网络机器设计的 AI 加速器专用集成电路 (ASIC)。TPU 具备优秀的 teraflop 配置、浮点运算性能等。每个 TPU 的计算能力达到每秒 180 万亿次浮点运算(180 teraflops),拥有 64 GB 的高带宽内存。在 Colab 中配置 TPU在 Google Colab 中配置 TPU 的方法如下:运转时菜单 → 更改运转时
选择 TPU 硬件加速器确认在 TPU 硬件加速器上运转这需要 TensorFlow 包。以下代码和实现可以确认 Colab 是否配置 TPU 加速器:import tensorflow as tftry: tpu = tf.distribute.cluster_resolver.TPUClusterResolver() print('Running on TPU', tpu.cluster_spec().as_dict()['worker'])except ValueError: print('Exception')
如果 TPU 未配置成功,则代码会报错。结论Google Colab 是一种 Jupyter notebook 环境,通过执行基于 Python 的代码来构建机器学习或深度学习模型。Google Colab 完全免费(pro 版除外),并供应 GPU 和 TPU 硬件加速器,易于应用和共享。本文列举了 Google Colab 的应用技巧,希望能够帮助大家更好地利用 Google Colab 资源。资源
Google colab 实现:https://colab.research.google.com/drive/1ymIYzFg4Q7iBjnTut31aBqPHgOpkjHYD?usp=sharing
Github repository:https://github.com/towardsai/tutorials/tree/master/google_colab_tutorial
参考文献[1] Google Colab, https://colab.research.google.com/[2] Python 2 Deprecation, Google Colab, Google, https://research.google.com/colaboratory/faq.html#python-2-deprecation[3] Machine Learning Algorithms for Beginners with Code Examples in Python, Pratik Shukla, Roberto Iriondo, Towards AI, https://towardsai.net/p/machine-learning/machine-learning-algorithms-for-beginners-with-python-code-examples-ml-19c6afd60daa[4] Project Jupyter, https://jupyter.org/[5] Google Colab, FAQ, https://research.google.com/colaboratory/faq.html
原文链接:https://medium.com/towards-artificial-intelligence/google-colab-101-tutorial-with-python-tips-tricks-and-faq-7689bd4d24b4