google colab 提供免费的GPU资源,出于学习、体验目地,写本博客。使用前提是首先要可以上外网,其次要注册有谷歌的帐号。
google colab主要是一个基于jupyter notebook的云产品,支持GPU和TPU,可以在上面学习深度学习,支持Pytorch,Tensorflow,Keras,Opencv等。通过本博客,基本可以入门colab使用。
我们可以在Colab中创建notebook,上传,存储,共享,安装Google云端硬盘(注帐户就有15G使用空间)并使用其中存储的任何内容,导入您最喜欢的目录,上传您的Jupyter笔记本,直接从GitHub上传笔记本,上传Kaggle文件,下载笔记本,然后执行您可能想做的所有其他事情。
在Google Driver中创建文件夹用来存放Notebook,本部骤不是必须的,但是存放在一个固定的文件夹,方便操作,否则会分散到处都是。打开Google Driver,点击“新建”,先择“文件夹”即可:
然后可以在文件夹下新建 colab notebook:
或者也可以直接打开Colab notebook。
这也会存在问题,多次使用会使产生大量的Untiled1.ipynb,序号越来越多,所以有个解决方法就是打开一个scratchpad https://colab.research.google.com/notebooks/empty.ipynb,每次的修改不会影响主帐户。
打开notebook后需要做些配置,才可以充分使用notebook.
点击修改名称
选择流程如下图:
会弹出选项框,可以选GPU,TPU,或默认的使用CPU,
连接自己的Google Drive,从而可以使用colab来训练自己的数据。首先是将数据上传到Google Drive.
连接方法如下:
from google.colab import drive
drive.mount("/content/drive")
会弹出链接,点击,并按照提示完成,最后复制授权码并粘贴,完成连接。
此时,可以查看自己的google云盘:
! ls "/content/drive/My Drive"
到此,完成谷歌云盘与colab的连接。
在colab中可以使用命令进行数据下载和解压,如:
!wget ...
!unzip ...
也可以直接上传,点击进入要上传文件的目录,右击,会弹出上传选项:
最新colab 默认是可以导入tensorflow 和pytorch,默认的安装包可以通过如下命令查看:
!pip list
便会输出所有pip的包。如果没有可以通过命令安装
!pip install
!apt-get install
以上这两命令都可以生效。
Colab可以完美结合github使用,更多使用方法参见https://colab.research.google.com/github/googlecolab/colabtools/blob/master/notebooks/colab-github-demo.ipynb
通过colab使用github或本地Notebook,点击 文件->上传笔记本,然后在弹出的窗口中选择合适的选项:
保存时,只要打开“文件”
分享是:
到此,完成colab的使用。
有很多方法,能够提升我们的colab使用。
通常,我们手动计算一段代码的开始时间和结束时间之间的差值来衡量所花费的时间。 Colab提供了内置功能来执行此操作。执行单元后,将鼠标悬停在单元运行图标上,您将获得执行时间的估计值。
如果您熟悉Jupyter Notebook中的键盘快捷键,则它们不能直接在Colab中使用。但是我发现了一个可以在它们之间映射的思维模型。 只需在Jupyter中使用的任何键盘快捷键之前添加Ctrl +M。此经验法则适用于大多数常见用例。
以下是此规则的一些显着例外,其快捷方式已完全更改或保持不变。
与IDE相似,您可以通过按Ctrl,然后单击一个类名来转到类定义。例如,在这里我们通过按Ctrl并单击Dense类名来查看Keras中Dense层的类定义。
鼠标悬停上边则会弹出帮助文档。
Google Colab团队提供了正式的Chrome扩展程序,可直接在colab上在GitHub上打开笔记本。您可以从这里安装。
安装后,单击任何GitHub笔记本上的colab图标直接将其打开。
另外,您也可以通过将github.com替换为colab.research.google.com/github来手动打开任何GitHub笔记本。
例如:
https://github.com/fastai/course-v3/blob/master/nbs/dl1/00_notebook_tutorial.ipynb
转换成:
https://colab.research.google.com/github/fastai/course-v3/blob/master/nbs/dl1/00_notebook_tutorial.ipynb
使用flask-ngrok的库,您可以轻松在colab上运行的Flask Web应用。首先,您需要安装flask和flask-ngrok。
!pip install flask-ngrok flask==0.12.2
然后,只需要将flask应用程序对象传递给run_with_ngrok函数,它将在启动服务器时公开ngrok端点。
from flask import Flask
from flask_ngrok import run_with_ngrok
app = Flask(__name__)
run_with_ngrok(app)
@app.route('/')
def hello():
return 'Hello World!'
if __name__ == '__main__':
app.run()
通过命令,可以大tensorflow1.x和2.x之间进行切换。
#切换到1.x
%tensorflow_version 1.x
#切换到2.x
%tensorflow_version 2.x
系统启动默认是tensorflow2.x。同时,切换命令要在使用tensorflow前执行。
出于性能原因,Colab建议使用预安装的Tensorflow版本,而不是从pip安装它。
像在jupyter notebook 中一样,可以在Colab中使用tensorboard。
使用命令如下:
%load_ext tensorboard
%tensorboard --logdir logs
更多使用方法,参见https://colab.research.google.com/github/tensorflow/tensorboard/blob/master/docs/tensorboard_in_notebooks.ipynb
在colab中我们需要了解cpu或Gpu使用情况,才能更好利用这些资源。Colab针对其免费版和专业版提供不同规格。根据需求,如果要更多的资源,要以每月10美元的价格切换到专业版。
查看GPU:
!nvidia-smi
cat /proc/cpuinfo
import psutil
ram_gb = psutil.virtual_memory().total / 1e9
print(ram_gb)
Colab中没有内置的交互式终端。但是您可以使用bash命令以交互方式试用shell命令。只需运行此命令,您将获得交互式输入
%bash
然后在cell中输入任何shell命令。
如果要退出,输入exit即可。
Colab提供了RAM和磁盘使用情况的指示器。如果将鼠标悬停在指示器上,将弹出一个弹出窗口,其中包含当前使用情况和总容量。
您可以使用以下代码在您的README.md或jupyter笔记本中添加“在Colab中打开”图标。
在Markdown代码中,我们正在加载SVG图片,然后将其链接到colab笔记本。
[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/notebooks/basic_features_overview.ipynb)
如果将miniconda用作python环境管理器,则可以通过在笔记本顶部运行此命令在colab上对其进行设置。
# Download Miniconda installation script
!wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# Make it executable
!chmod +x Miniconda3-latest-Linux-x86_64.sh
# Start installation in silent mode
!bash ./Miniconda3-latest-Linux-x86_64.sh -b -f -p /usr/local
# Make conda packages available in current environment
import sys
sys.path.append('/usr/local/lib/python3.7/site-packages/')
执行以上命令后,就可以像普通方法一样来执行安装命令:
!conda install -y flask
对于长时间任务,如训练模型,可以训练模型完成时,弹出桌面提示。
工具->设置->网站,设置“执行完毕后显示桌面通知”
任务完成后,会以浏览器通知的方式进行通知。