https://www.zhongxiaoping.cn/2018/12/01/%E4%BD%BF%E7%94%A8colab%E5%B9%B3%E5%8F%B0%E8%BF%9B%E8%A1%8C%E8%AE%AD%E7%BB%83/

本文主要是讲述模型在借组谷歌硬盘使用colab实现后台运行,该平台运行速度能让人接受,并且操作也较为便捷.



一.简介

  Google Colab 提供免费的 Jupyter 笔记本环境,不需要进行任何设置就可以使用,并且完全在云端运行,其默认的后台深度学习框架是TensorFlow, 除此之外,你也可以在上面安装并使用Keras、PyTorch、OpenCV等等流行的深度学习库来.
可以把Colab看成是一台带有GPU的Ubuntu虚拟机,只不过我们只能用命令行的方式操作它。你可以选择执行系统命令,亦或是直接编写运行python代码。(速度也是能让人接受,不会太慢,比本身用笔记本慢些,关键离线)
Colab最多连续使用12小时,超过时间系统会强制掐断正在运行的程序并收回占用的虚拟机。(好像再次连接到虚拟机后,虚拟机是被清空的状态,需要重新配置和安装库等等),下面这几步在每次启动的时候都要进行(右上角显示连接的时候),比较麻烦,免费的才是最贵的.,如图:
需要重连的时候

二.准备工作:

1
2
3
4
5
1.谷歌账号;
2.在谷歌硬盘当中兴建文件夹,本次命名为BERT;
3.之后上传代码文件(预训练模型文件看情况是否上传,清空output文件夹--模型文件太大);
4.修改-->笔记本设置:硬件加速器改为GPU
5.点击右上部分的连接按钮,链接即可

三.安装必要的包和软件

1
2
3
4
5
6
7
8
9
10
11
12
!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}

  如果出现:E: Package 'python-software-properties' has no installation candidate直接按回车即可(多次),如果运行中出现网址会提示输入验证码,点击程序给出的网址进行验证得到验证码,复制粘贴即可。

四.挂载Drive

  其实完成前面的操作我们就可以在Colab中敲写代码或者输入一些系统命令了(linux下的一些基本命令),但是我们现在连接的虚拟机是和Google Drive脱离的,也就是说我们跑的程序无法使用谷歌云盘里的文件,这就非常受限制了。所以我们一般需要将谷歌云盘看作是虚拟机中的一个硬盘挂载,这样我们就可以使用虚拟机轻松访问谷歌云盘。
(1)清空上次缓存:

1
2
!mkdir -p drive
!google-drive-ocamlfuse drive

(2)或者保留上次缓存

1
2
!mkdir -p drive
!google-drive-ocamlfuse drive -o nonempty

  挂载完Google Drive,会在虚拟机里生成一个drive文件夹,直接将Google Drive当成是一块硬盘即可。访问drive文件夹里的文件,就是在访问你的Google Drive里的文件。

五.更改工作目录

  Colab中cd命令是无效的,切换工作目录使用chdir函数。

1
2
import os
os.chdir('drive/BERT')

  执行以上代码,当前工作目录会进入到drive文件夹下的BERT文件夹下。我们再使用!ls命令会发现系统输出的是drive文件夹下的目录。
  回到上级目录:os.chdir(‘../‘)

六.运行

1
2
3
4
5
6
7
8
9
10
11
12
13
!python run_classifier.py \
--task_name=vega \
--do_train=true \
--do_eval=true \
--data_dir=data \
--vocab_file=gs://cloud-tpu-checkpoints/bert/uncased_L-24_H-1024_A-16/vocab.txt \
--bert_config_file=gs://cloud-tpu-checkpoints/bert/uncased_L-24_H-1024_A-16/bert_config.json \
--init_checkpoint=gs://cloud-tpu-checkpoints/bert/uncased_L-24_H-1024_A-16/bert_model.ckpt \
--max_seq_length=16 \
--train_batch_size=32 \
--learning_rate=2e-5 \
--num_train_epochs=8.0 \
--output_dir=output \

结果为:
colab上的测试结果

七.总结

  (1)最好在本地编辑好,在本地能够运行在提交到云平台当中,要不然修改麻烦.并且效率低;
  (2)云平台上热启动有时候可能会报错,这个要注意;
  (3)如果出现不能保存模型结果,或者其他异常问题,最安全的方法就是删除对应colab对应的文件(以.ipynb为结尾的)之后重新安装,最后实在不行的话,全部代码和.ipynb全部删除,再次建立。因为一个colab对应的.pynib就相当于是个linux的虚拟机环境

八.参考文献

  ❋Google免费GPU使用教程
  ❋Google Colab——用谷歌免费GPU跑你的深度学习代码
  ❋使用Google免费GPU进行BERT模型fine-tuning
  ❋colab中文版

使用colab平台进行训练的更多相关文章

  1. ACM-ICPC 训练平台 & 比赛 分析

    the file can download in https://pan.baidu.com/s/1HwoLFHGAG-boQbIn9xIhxA occ5 the article is also pu ...

  2. Google Colab使用教程

    简介Google Colaboratory是谷歌开放的云服务平台,提供免费的CPU.GPU和TPU服务器. 目前深度学习在图像和文本上的应用越来越多,不断有新的模型.新的算法获得更好的效果,然而,一方 ...

  3. Colab教程(超级详细版)及Colab Pro/Colab Pro+使用评测

    在下半年选修了机器学习的关键课程Machine learning and deep learning,但由于Macbook Pro显卡不支持cuda,因此无法使用GPU来训练网络.教授推荐使用Goog ...

  4. machine learning----->谷歌Cloud Machine Learning平台

    1.谷歌Cloud Machine Learning平台简介: 机器学习的三要素是数据源.计算资源和模型.谷歌在这三个方面都有强大的支撑:谷歌不仅有种类丰富且数量庞大的数据资源,而且有强大的计算机群提 ...

  5. ML平台_小米深度学习平台的架构与实践

    (转载:http://www.36dsj.com/archives/85383)机器学习与人工智能,相信大家已经耳熟能详,随着大规模标记数据的积累.神经网络算法的成熟以及高性能通用GPU的推广,深度学 ...

  6. Apache Pulsar 在腾讯 Angel PowerFL 联邦学习平台上的实践

    腾讯 Angel PowerFL 联邦学习平台 联邦学习作为新一代人工智能基础技术,通过解决数据隐私与数据孤岛问题,重塑金融.医疗.城市安防等领域. 腾讯 Angel PowerFL 联邦学习平台构建 ...

  7. [炼丹术]YOLOv5训练自定义数据集

    YOLOv5训练自定义数据 一.开始之前的准备工作 克隆 repo 并在Python>=3.6.0环境中安装requirements.txt,包括PyTorch>=1.7.模型和数据集会从 ...

  8. iGear 用了这个小魔法,模型训练速度提升 300%

    一个高精度AI模型离不开大量的优质数据集,这些数据集往往由标注结果文件和海量的图片组成.在数据量比较大的情况下,模型训练周期也会相应加长.那么有什么加快训练速度的好方法呢? 壕气的老板第一时间想到的通 ...

  9. PHP代码审计】 那些年我们一起挖掘SQL注入 - 1.什么都没过滤的入门情况

    0x01 背景 首先恭喜Seay法师的力作<代码审计:企业级web代码安全架构>,读了两天后深有感触.想了想自己也做审计有2年了,决定写个PHP代码审计实例教程的系列,希望能够帮助到新人更 ...

随机推荐

  1. 洛谷P2826 [USACO08NOV]光开关Light Switching [2017年6月计划 线段树02]

    P2826 [USACO08NOV]光开关Light Switching 题目描述 Farmer John tries to keep the cows sharp by letting them p ...

  2. 阿里云DMS发布数据库网关服务: 打通网络限制 开启数据库统一管理的万能钥匙

    概述 阿里云数据管理DMS在云端可提供专业的数据库服务,除对标本地数据库软件的基础功能外,还包含性能诊断.数据追踪.跨实例SQL查询(含异构数据库类型之间)等专业性功能,同时提供审计安全和企业级数据库 ...

  3. JS---案例:拖曳对话框

    案例:拖曳对话框 ps: 实际没有要拖曳登录框的需求,只是演示拖曳的这个效果 1. 获取超链接,注册点击事件,显示登陆框和遮挡层 2. 获取关闭,注册点击事件,隐藏登陆框和遮挡层 3. 按下鼠标,移动 ...

  4. Oracle 行转列及列转行

    参考网址:http://blog.163.com/fushahui_1988@126/blog/static/82879994201192844355174/ 一.多行转一列select id, vn ...

  5. python中函数和方法区别,以及如何给python类动态绑定方法和属性(涉及types.MethodType()和__slots__)

    网上有很多同义但不同方式的说法,下面的这个说法比较让你容易理解和接受 与类和实例无绑定关系的function都属于函数(function): 与类和实例有绑定关系的function都属于方法(meth ...

  6. 在liferay 7中如何删除service builder已经生成的数据库table

    在Liferay 7中,加了数据库保护机制,你改了service.xml的结构后,重新运行service builder,并不会帮你生成新的数据库表.然后你发现你在数据库中自己手动删除了表后,重新部署 ...

  7. Liferay如何连接本地的数据库

    Liferay自带的数据库非常迷你,一般就是玩玩的. 在真实的开发过程中,我们往往需要把它与我们本地的数据库相连. 有3中方法,我在这里就只介绍我自己最喜欢的方法啦.连的是mysql 1.在Lifer ...

  8. svn upgrade

    在我们把我们服务器上的svn 版本号升级以后,我们之前的代码再执行svn命令时,会提示需要执行svn upgrade命令把当前的代码由低版本的svn 上迁移到高版本的svn 上去. 直接执行svn u ...

  9. Java ANSI转码UTF-8

    public static void change(String filepath) throws UnsupportedEncodingException, IOException{ Buffere ...

  10. Android中View的layout mechanism(布局机制)

    layout mechanism Android中View的layout mechanism主要分为两个阶段:measure阶段和layout阶段.layout mechanism按照一定的顺序进行, ...