一. 概述
本文将介绍一套非常好用的一个免费资源,由 Google 所提供的 Colab 这项云端服务。
延续上一章节的理念,此系列的目的为工具书导向,这里将持续介绍一些额外的第三方软体技巧应用,比如说如何连接 Google Drive 来存取档案,如何利用 Google sheet 来读写资料,以及该如何利用 Github 来建立更想大的备份代码仓储等等应用技巧。如下图文章架构图所示,此架构图隶属于 i.MX8M Plus 的方案博文中,并属于 Third Party 软体资源的 Google Colab 密技大公开 之部分,目前章节介绍 “Colab 第三方应用”。
若新读者欲理解更多人工智能、机器学习以及深度学习的资讯,可点选查阅下方博文
大大通精彩博文 【ATU Book-i.MX8系列】博文索引
Colab 系列博文-文章架构示意图
二. Google Colab 应用技巧
1. Google Drives 应用 :
Google Drive可搭配 PyDrive 套件进行验证、上传与下载文件。而进阶应用可搭配 Google Resource Manager 进行更高层度的云端数据管理,请参考此连结。
官方网站 : https://pythonhosted.org/PyDrive/#
下列附上 程式储存格的代码(灰底) 以及 运行结果(灰底后的图示),复制贴上至 Colab 即可使用 !!
(1) 挂载 Google Drive
from google.colab import drive
drive.mount('/gdrive')
(2) Google Drive - 上传档案
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default() # 给予授权
drive = GoogleDrive(gauth)
uploaded = drive.CreateFile({'title': 'Sample file.txt'}) # 建立档案
uploaded.SetContentString('Sample upload file content') # 设定资料
uploaded.Upload() # 上传
print('Uploaded file with ID {}'.format(uploaded.get('id'))) # 取得上传文件的 id
(3) Google Drive - 载入档案
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default() # 给予授权
drive = GoogleDrive(gauth)
file_id = 'REPLACE_WITH_YOUR_FILE_ID' #设定上传文件的 id
downloaded = drive.CreateFile({'id': file_id})
print('Downloaded content "{}"'.format(downloaded.GetContentString()))
(4) Google Drive - 写入档案
with open('/gdrive/My Drive/foo.txt', 'w') as f:
f.write('Hello Google Drive!')
!cat '/gdrive/My Drive/foo.txt'
(5) Google Colab – 上传档案
从本机档案系统上传档案
from google.colab import files
uploaded = files.upload("/gdrive/filename")
(6) Google Colab – 下载档案
将档案下载至本机档案系统
from google.colab import files
df.to_csv("/gdrive/filename")
files.download("/gdrive/filename")
2. Google Sheets 应用 :
Google Drive可搭配 gspread 套件进行验证、上传与下载文件。
官方网站 : https://docs.gspread.org/en/latest/
(1) Google Sheets - 写入资料 / 储存档案
from google.colab import auth
import gspread
from oauth2client.client import GoogleCredentials
auth.authenticate_user()
gc = gspread.authorize(GoogleCredentials.get_application_default()) #给予授权
sh = gc.create('A new spreadsheet') #创立一个新档案
worksheet = gc.open('A new spreadsheet').sheet1 #选取工作表
cell_list = worksheet.range('A1:C2') #选取工作栏位
import random
for cell in cell_list:
cell.value = random.randint(1, 10) # 撰写变数
worksheet.update_cells(cell_list) #上传/储存资料,将放置于 Google Drive
(2) Google Sheets - 载入资料
from google.colab import auth
import gspread
from oauth2client.client import GoogleCredentials
auth.authenticate_user()
gc = gspread.authorize(GoogleCredentials.get_application_default()) #给予授权
worksheet = gc.open(' A new spreadsheet ').sheet1 #从 Google Drive 中,读取资料
rows = worksheet.get_all_values()
import pandas as pd
pd.DataFrame.from_records(rows)
3. Github 应用 :
Github 是知名的版本控制代管平台,提供组织建立和存取代管、图表与代码显示等等功能。广受开发者爱戴,已拥有超过 4 千万的使用者并成为世界上最大的代码存放网站,于 2018 年由微软收购。
Google Colab 可以无痛衔接至 Github 上,进行更有效的版本管理。
设定方式如下 :
Step 1 : 开启新的 Github Repository 仓储
Step 2 : 于 Colab 中,点选 “在 GitHub 中储存副本”即可。
4. Cloudflare 应用 :
Cloudflare 是一套知名的分布式式域名解析服务,借此应用可让 VS Code 远端操作 Colab 的资源。
应用方式如下 :
Step 1 : 下载 Cloudflare 的执行档
请点选此连结,并下载相应的作业系统之二进制档案。
Step 2 : 开启 Colab 笔记本,取得 SSH 的连结位置
安装套件 :
!pip install colab_ssh --upgrade
取得代理服务器 SSH 位置 :
from colab_ssh import launch_ssh_cloudflared, init_git_cloudflared
launch_ssh_cloudflared(password="Password")
Step 3 : 开启 VS Code 设定远端连线,即可启用
按下 F1 , 设定 Remote SSH : Open SSH Configuration File
Host nations-radical-cialis-luke.trycloudflare.com
HostName %h
User root
Port 22
ProxyCommand D:\COLAB\cloudflared-windows-amd64.exe access ssh --hostname %h
按下 F1 , 执行 Remote SSH Connect to Host
选择 SSH 远端连线 > Linux > 输入帐密即可完成连线
三. 结语
本文主要目的是推广 Colab 的实用性为主,其用意是希望读者可以将此系列博文当作一套工具书来查阅,来达到快速应用之目的。本文介绍了如何透过 Google Drive 来达到上传档案、载入档案等目的,以及透过 Google Sheet 来读写资料。接下来,我们也介绍了 Cloudflare 来实现远端连线至 Colab 中,并透过 VSCode 的软体界面来操作。或者也可直接用 SSH 进行连线。最后一篇文章,将利用 Colab 训练出物件识别的模型,并直接应用至 i.MX8M Plus 的开发板中 !! 帮助读者可以快速训练出属于自己的 AI 模型 !! 敬请期待 !!
四. 参考文件
[1] 官方文件 - Colaboratory 官网
[2] 第三方文件 -鸟哥的首页
如有任何相关 Colab 技术问题,欢迎至博文底下留言提问 !!
接下来还会分享更多 Colab 的技术文章 !!敬请期待 【ATU Book-i.MX8 系列 - Colab 】 !!
评论