• 在Google Cloud Platform(GCP)中使用TensorFlow
    • 在Compute Engine建立带GPU的实例并部署TensorFlow
    • 使用AI Platform中的Notebook建立带GPU的在线JupyterLab环境

    在Google Cloud Platform(GCP)中使用TensorFlow

    Google Cloud Platform(GCP) 是Google的云计算服务。GCP收费灵活,默认按时长计费。也就是说,你可以迅速建立一个带GPU的实例,训练一个模型,然后立即关闭(关机或删除实例)。GCP只收取在实例开启时所产生的费用,关机时只收取磁盘存储的费用,删除后即不再继续收费。

    我们可以通过两种方式在GCP中使用TensorFlow:使用Compute Engine建立带GPU的实例,或使用AI Platform中的Notebook建立带GPU的在线JupyterLab环境。

    在Compute Engine建立带GPU的实例并部署TensorFlow

    GCP的Compute Engine类似于AWS、阿里云等,允许用户快速建立自己的虚拟机实例。在Compute Engine中,可以很方便地建立具有GPU的虚拟机实例,只需要进入Compute Engine的VM实例(https://console.cloud.google.com/compute/instances),并在创建实例的时候选择GPU类型和数量即可。

    ../../_images/create_instance.png

    需要注意两点:

    • 只有特定区域的机房具有GPU,且不同类型的GPU地区范围也不同,可参考 GCP官方文档 并选择适合的地区建立实例;

    • 默认情况下GCP账号的GPU配额非常有限(可能是怕你付不起钱?)。你很可能需要在使用前申请提升自己账号在特定地区的特定型号GPU的配额,可参考 GCP官方文档:申请提升配额 ,GCP会有工作人员手动处理申请,并给你的邮箱发送邮件通知,大约需要数小时至两个工作日不等。

    当建立好具有GPU的GCP虚拟机实例后,配置工作与在本地基本相同。系统中默认并没有NVIDIA显卡驱动,依然需要自己安装。

    以下命令示例了在Tesla K80,Ubuntu 18.04 LTS的GCP虚拟机实例中配置NVIDIA 410驱动、CUDA 10.0、cuDNN 7.6.0以及TensorFlow 2.0 beta环境的过程:

    1. sudo apt-get install build-essential # 安装编译环境
    2. wget http://us.download.nvidia.com/tesla/410.104/NVIDIA-Linux-x86_64-410.104.run # 下载NVIDIA驱动
    3. sudo bash NVIDIA-Linux-x86_64-410.104.run # 安装驱动(一路Next)
    4. # nvidia-smi # 查看虚拟机中的GPU型号
    5. wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh # 下载Miniconda
    6. bash Miniconda3-latest-Linux-x86_64.sh # 安装Miniconda(安装完需要重启终端)
    7. conda create -n tf2.0-beta-gpu python=3.6
    8. conda activate tf2.0-beta-gpu
    9. conda install cudatoolkit=10.0
    10. conda install cudnn=7.6.0
    11. pip install tensorflow-gpu==2.0.0-beta1

    输入 nvidia-smi 会显示:

    1. ~$ nvidia-smi
    2. Fri Jul 12 10:30:37 2019
    3. +-----------------------------------------------------------------------------+
    4. | NVIDIA-SMI 410.104 Driver Version: 410.104 CUDA Version: 10.0 |
    5. |-------------------------------+----------------------+----------------------+
    6. | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
    7. | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
    8. |===============================+======================+======================|
    9. | 0 Tesla K80 Off | 00000000:00:04.0 Off | 0 |
    10. | N/A 63C P0 88W / 149W | 0MiB / 11441MiB | 100% Default |
    11. +-------------------------------+----------------------+----------------------+
    12.  
    13. +-----------------------------------------------------------------------------+
    14. | Processes: GPU Memory |
    15. | GPU PID Type Process name Usage |
    16. |=============================================================================|
    17. | No running processes found |
    18. +-----------------------------------------------------------------------------+

    使用AI Platform中的Notebook建立带GPU的在线JupyterLab环境

    如果你不希望繁杂的配置,希望迅速获得一个开箱即用的在线交互式Python环境,可以使用GCP的AI Platform中的Notebook。其预安装了JupyterLab,可以理解为Colab的付费升级版,具备更多功能且限制较少。

    进入 https://console.cloud.google.com/mlengine/notebooks ,点击“新建实例-TensorFlow 2.0-With 1 NVIDIA Tesla K80”,界面如下:

    ../../_images/create_notebook.png

    也可以点击“自定义”来进一步配置实例,例如选择区域、GPU类型和个数,与创建Compute Engine实例类似。

    提示

    和Compute Engine实例一样,你很可能需要在这里选择自己适合的区域,以及申请提升自己账号在特定地区的特定型号GPU的配额。

    建立完成后,点击“打开JUPYTERLAB”,即可进入以下界面:

    ../../_images/notebook_index.png

    建立一个Python 3笔记本,测试TensorFlow环境:

    ../../_images/notebook_test.png

    我们还可以点击左上角的“+”号,新建一个终端:

    ../../_images/notebook_terminal.png