一. 概述
本文将介绍一套非常好用的一个免费资源,由 Google 所提供的 Colab 这项云端服务,透过此平台可以帮助我们加快机器学习的开发、并利用其平台资源能够随时随地进行应用,实在相当方便 !! 为了大力推广这项服务,而特别添加至系列博文中来分享给各位读者。若熟悉此项服务,势必能在机器学习开发上,给予相当大的帮助 !! 像是透过 Colab 训练出一套物件侦测模组后,就可以直接应用至 i.MX8 开发平台上 !! 而本系列最终诚挚地希望各位读者能够借由此项云端服务来打造属于自己的 AI 学习库 !!
如下图文章架构图所示,此架构图隶属于 i.MX8M Plus 的方案博文中,并属于 Third Party 软体资源的 Google Colab 密技大公开 之部分,目前章节介绍 “Colab 使用介绍”。
若新读者欲理解更多人工智能、机器学习以及深度学习的资讯,可点选查阅下方博文
大大通精彩博文 【ATU Book-i.MX8系列】博文索引
Colab 系列博文-文章架构示意图
二. Google Colab 介绍
Google Colaboratory 是一个 Google 免费提供的代码服务平台,简称 Colab。由 Jupyter Notebook 与 Docker 所构成的 Python 代码编写器,具有强大的跨平台与整合、自由操作等特性,非常适合开发初学者。
优势 :
▼ Colab 操作方式简单,类似 Jupyter Notebook 操作
▼ Colab 属于 Docker 架设的虚拟环境为 Linux 系统,可任意架设 Python 套件。
▼ Colab 提供 CPU、GPU、TPU 等硬体设备,开发者能够任意切换使用。
▼ Colab 能够自由地取存 Google Driver 云端资料,并自动将代码存放于云端中。
▼ Colab 善用于数据分析、图表绘制、机器学习。
劣势 :
▼ Colab 属于 Docker 架设的虚拟环境为 Linux 系统,无法保存资料。
( 因 Colab 免费版有使用时间限制,在某个时间会关掉虚拟环境,故需要配合第三方云端来保存资料 )
▼ Colab 提供 GPU、TPU 等硬体设备不够强大、且有时间限制,仅适用小型训练。
( 目前 Colab 仅提供性能不错的 Tesla P100 ,约能提供每秒 5 TFLOPS 的运算次数,但相比于现今高阶显卡等级仍有一段差距 )
1. 如何使用 :
点选此连结(https://colab.research.google.com),以 Google 帐号登入后,即可新增笔记本。
当前 Colab 环境为 Python 3.8 + TensorFlow 2.5.0
2. 执行代码 :
Jupyter Notebook执行方式一样,仅须 点选储存格(灰色视窗) 位置,按下 “Shift+Enter” 即开始运行。
举例 : 输入 python 代码,按下 “Shift+Enter” 运行后,即可直接看到结果。
3. 左侧功能列 :
左侧的功能列,依序作用为目录、搜寻与取代、程式码片段、变数、档案五大功能。这里大力推荐 Colab 所设计的 “目录” 功能,能够给予一目了然的程式笔记本的体验 !! 如下方右图,相当实用。
另外,“变数” 的功能也是相当便利的设计,能够显示当前的系统所操作的变数,对于程式开发者真的非常友善 !! 并搭配 “档案” 的功能,更能随心所欲地操作这个平台 !!
4. 上方功能列 :
上方的功能列,依序为档案、编辑、检视画面、插入、执行阶段、工具、说明等七项。
这里功能不外乎为新增、载入、储存笔记本、收合区段、展开区段、全部执行、中止执行、执行过的程式码历史纪录等等操作。
必须强调的是 执行阶段> “变更执行阶段类型” 的功能,能够自由的切换 Google 所提供的硬体设备,如 CPU (2x 2.2Ghz)、GPU (Nvidia K80、T4、P4、P100)、TPU。
5. 付费会员 :
Colab 亦有提供进阶的付费服务 ; 如下图所示, Pro 能够给予更强大且更长时间的 GPU 使用权限。 Pro + 甚至提供背景执行的服务 !! 可说是云端服务的一项首选 !!
( 顺带一提,若免费版的用户,超过 GPU 的使用时间将会限制 24 小时的使用权限 )
三. 基础操作
Colab 本质是由 Docker 所建置的 Linux 环境,故基本操作就与作业系统差不多。详细用法请参照鸟哥 !!
下列附上 程式储存格的写法(灰底) 以及 运行结果(灰底后的图示),复制贴上至 Colab 即可使用 !!
1. 基本操作 :
(1) 移动当前位置
%cd path
(2) 检视当前资讯
指令 : ls / du / pwd / df
! ls
(3) 新增档案
指令 : touch / cat / echo / dd
! touch FileName
(4) 复制/移动/删除档案、资料夹
指令 : cp / mv / rm
! cp source_file_path destination_file_path
(5) 新增/移除资料夹
指令 : mdkir / rmdir
! mkdir FolderName
(6) 压缩、解压缩档案
指令 : tar / gz / tar.gz / bz / tar.bz / 7z / zip / rar
参考连结 : http://note.drx.tw/2008/04/command.html
! tar xvf FileName.tar
(7) 权限设定
指令 : chmod / chown
! chmod -R 777 FileName
(8) 寻找档案
指令 : find / grep
! find -name FileName
2. 如何查看硬体资源 :
(1) 检视 CPU 资讯
print("CPU Status:")
!cat /proc/cpuinfo | grep model\ name # 检查CPU资讯
(2) 检视 GPU 资讯
! nvidia-smi
(3) 检视硬盘资讯
print("\nDisk Status: ")
! df -lh # 检查磁盘空间
(4) 检视记忆体资讯
print("\nRAM Status:")
! free -h # 检查记忆体大小
3. 如何查看软体资源 :
(1) 检视 python 已安装套件
! pip3 list
(2) 检视 Linux 已安装套件
! apt list --installed
4. 如何安装软体资源 :
(1) 安装 Python 套件
! pip3 install package
(2) 安装 Linux 套件
! apt-get install -y package
5. 如何重新启动环境 :
import os
os.kill(os.getpid(), 9) # 重启环境 解决版本安装冲突问题
6. 如何下载档案 :
(1) 利用 wget 下载档案
! wget -O FileName Download_Link
(2) 利用 gdown 下载档案
Linux 指令方式 :
! gdown Download_Link -O FileName
Python 指令方式 :
import gdown
gdown.download( Download_Link, FileName )
(3) 利用 git 下载整个 GitHub 资料夹
! git clone github_link
example link : https://github.com///
(4) 利用 svn 下载单一 GitHub 档案或资料夹
安装 svn 套件 :
! apt-get install subversion
修改 github 路径 :
# >> 将 /tree/master/ 换成 /trunk/
下载单一资料夹
! svn co https://github.com/username/projectname/trunk/folder
下载单一档案
! svn co https://github.com/username/projectname/trunk/FileName create_folder_name --depth empty
! svn up create_folder_name
须建立一个空的资料夹,以独立更新该档案的方式下载。
四. 结语
本文主要目的是推广 Colab 的实用性为主,一开始介绍 Colab 该如何使用、该如何进行编译、如何选用 GPU 运算以及界面排版等简易说明。紧接着, Colab 后台主机亦属于 Linux 环境, 故提供一系列 Linux 的基本操作指令给读者作参考,其用意是希望读者可以将此系列博文当作一套工具书来查阅,来达到快速应用之目的。后续文章,将说明在 Colab 平台中使用 python 代码的一些应用技巧,像是如何画出直方图,如何在 Colab 上制作小型的选择 Button 等等应用,敬请期待 !!
五. 参考文件
[1] 官方文件 - Colaboratory 官网
[2] 第三方文件 -鸟哥的首页
如有任何相关 Colab 技术问题,欢迎至博文底下留言提问 !!
接下来还会分享更多 Colab 的技术文章 !!敬请期待 【ATU Book-i.MX8 系列 - Colab 】 !!
评论