• 使用colab平台进行训练


    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上的测试结果colab上的测试结果

    七.总结

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

    八.参考文献

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

  • 相关阅读:
    Spring + mybatis 主从数据库分离读写的几种方式(二)
    Spring + mybatis 主从数据库分离读写的几种方式(一)
    AS3隐藏特性——深拷贝数据对象
    如何高效地抽离出两个数组中的相同元素
    资料合集2
    Trace类
    网页游戏心跳机制
    stage3d 你不知道的巨坑
    打包一组xml数据ByteArray
    利用BlendMode做镂空擦除效果
  • 原文地址:https://www.cnblogs.com/jfdwd/p/11228194.html
Copyright © 2020-2023  润新知