Google Colab使用Tips

Google Colab介绍

依据官方介绍,Google Colaboratory项目(简称Google Colab)旨在提供一个提供一个基于Jupyter的云端在线工具,帮助实现Machine Learning的教育和研究。而对于AI的研发人员来说,Google Colaboratory有以下几个非常有诱惑力的地方:

  • 提供免费的GPU资源:一直以来,算力的限制使得咱们普通老百姓对大型的AI算法望而却步,虽然像AWS等云服务提供商在他们的商品列表中提供有GPU配置的云服务器,但是仍然需要花费一定的费用。而Google Colab自其推出以来,GPU的使用一直是免费的!长久看Google Colab应该不会一直免费下去,所以各位且行且珍惜。除了提供免费的GPU资源,Google还在大力推广自家的TPU,详细信息可以参看:Google Cloud TPU Tutorial
  • 即开即用:打开一个Google Colab Notebook就像打开一个Jupyter Notebook一样,不需要太多额外的配置和操作。当然由于工作环境是在云端,自然免不了与本地资源的一些互动,如文件上传下载等等。
    Google Colab欢迎页面

Google Colab的使用

对于习惯使用Jupyter Notebook的Python码农来说,上手使用Google Colab几乎不存在任何门槛。Python工具包的安装,导入等几乎与Jupyter Notebook的操作一模一样。
唯一需要额外关注的是文件的管理。用户在打开一个Google Colab的时候,会被分配一台Linux虚拟机,我们需要在此Linux虚拟机上构建程序运行所需以来的文件系统。注意Linux虚拟机上本地文件是不会持久化的,为了更好的管理文件,最好的方式是挂载Google Drive,这样与运行程序相关的文件的上传,下载,输出文件的持久化保存等都可以由Google Drive来管理了。后面会具体介绍挂载Google Drive的方法。

在Google Colab上执行AI算法的总体流程

基于上面对Google Colab的一个大体的介绍,我们可以将在Google Colab上执行AI算法的总体流程总结未如下步骤:

  • 离线开发和测试模型:针对一个深度学习或机器学习的项目,我们首先可以在本地(最好是有GPU的主机或服务器)进行一些最基本的调试,例如针对深度学习使用一些较为简单的神经网络架构,使用数据量级比较有限的数据集先验证整个算法流程。
  • 上传相关文件到Google Drive:AI算法一般来说需要包括AI算法代码,相关数据等,这些都可以上传到Google Drive的特定位置。
  • 新建一个Google Colab Notebook并进行相关的配置:为AI算法新建一个Google Colab Notebook,并进行如下配置:
    • 配置GPU资源:使用Google Colab的主要原因也是希望利用云端免费的GPU资源,所以在运行程序之前一定要为当前notebook配置相应的GPU资源。
      在这里插入图片描述
      在这里插入图片描述
    • 挂载Google Drive硬盘:在Google Colab Notebook的Code Line中输入并运行:
      from google.colab import drive
      drive.mount('/content/drive')
      
    • 设定工作目录:在所挂载的Google Drive目录中找到相应的工作目录(即存放了算法代码文件及数据文件的目录)。
      import os
      path = "/content/drive/My Drive/[YOUR_WORKSPACE_PATH]"
      os.chdir(path)
      
    • 检查和安装算法运行依赖的Python工具包:如,算法需依赖tensor2tensor工具包,则在Google Colab Notebook的Code Line中输入:
      !pip install tensor2tensor
      
  • 运行AI算法: 运行算法的方式有两种,取决于原始的AI算法的设计。
    • 一种方式是直接以Python命令行的方式运行,这种情况下直接在Google Colab Notebook的Code Line中输入相关Python命令即可,例如:
      model = tf.keras.models.Sequential([
      				tf.keras.layers.Flatten(input_shape=(28, 28)),
      				tf.keras.layers.Dense(512, activation=tf.nn.relu),
      				tf.keras.layers.Dropout(0.2),
      				tf.keras.layers.Dense(10, activation=tf.nn.softmax)
      				])
      
      model.compile(optimizer='adam',
            loss='sparse_categorical_crossentropy',
            metrics=['accuracy'])
            
      model.fit(x_train, y_train, epochs=5)
      
      model.evaluate(x_test, y_test)
      
    • 另外一种方式是以Linux命令的方式运行,这种情况下需要在Google Colab Notebook的Code Line中输入相关命令并在命令前面加上“!”(实际上这点也继承了Jupyter Notebook的使用方法),例如:
      !python run_classifier.py \
        --task_name=MRPC \
        --do_train=true \
        --do_eval=true \
        --data_dir=$GLUE_DIR/MRPC \
        --vocab_file=$BERT_BASE_DIR/vocab.txt \
        --bert_config_file=$BERT_BASE_DIR/bert_config.json \
        --init_checkpoint=$BERT_BASE_DIR/bert_model.ckpt \
        --max_seq_length=128 \
        --train_batch_size=32 \
        --learning_rate=2e-5 \
        --num_train_epochs=3.0 \
        --output_dir=/tmp/mrpc_output/
      
  • 收集结果:根据算法的设定,算法相关的输出,如模型,如评估结果应该会存入制定的文件目录,由于挂载了Google Drive,相关结果可以在Google Drive中找到。

附A:挂载Google Drive硬盘的其他方法

参考了Google Colab挂载Google Drive并运行程序这篇博客中的介绍,总结如下:
第一步:安装配置google-drive-ocamlfuse工具。

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

第二步:使用google-drive-ocamlfuse挂载Google Drive至工作空间所在的虚拟服务器。

!mkdir -p drive
!google-drive-ocamlfuse -o nonempty drive
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值