【问题标题】:Sagemaker Instance not utilising GPU during trainingSagemaker 实例在训练期间未使用 GPU
【发布时间】:2021-10-14 20:59:30
【问题描述】:

我正在一个 ml.p3.2xlarge 实例上的 Tensorflow 上训练一个 Seq2Seq 模型。当我尝试在 google colab 上运行代码时,每个 epoch 的时间约为 40 分钟。但是在实例上大约需要 5 个小时!

这是我的训练代码

def train_model(train_translator, dataset, path, num=8):

  with tf.device("/GPU:0"):
    cp_callback = tf.keras.callbacks.ModelCheckpoint(filepath=path,
                                                save_weights_only=True,
                                                 verbose=1)
    batch_loss = BatchLogs('batch_loss')
    train_translator.fit(dataset, epochs=num,callbacks=[batch_loss,cp_callback])  

  return train_translator

我也试过不使用tf.device 命令,我仍然得到相同的时间。我做错了吗?

【问题讨论】:

    标签: python-3.x amazon-web-services machine-learning tensorflow2.0 amazon-sagemaker


    【解决方案1】:

    如果您使用的是 SageMaker Notebook 实例。打开终端并运行 nvidia-smi 以查看 GPU 利用率。如果你是 0%,那么你没有使用正确的设备。如果它超过 0% 但距离 100% 很远,那么您需要处理非 GPU 瓶颈。
    如果您使用的是 SageMaker 训练,请通过 Cloudwatch 指标检查该作业的 GPU 使用情况。

    【讨论】:

      【解决方案2】:

      我不得不在

      的帮助下强制使用 GPU
      with tf.device('/device:GPU:0')
      

      【讨论】:

        【解决方案3】:

        如果您在 Tensorflow 估算器中使用 instance_type='local' 的 GPU 实例上使用 Sagemaker Notebook,它显然默认为 CPU...

        我通过设置:instance_type='local_gpu' 解决了这个问题。

        【讨论】:

        • 这是一个 Sagemaker 培训工作
        猜你喜欢
        • 2021-04-19
        • 1970-01-01
        • 2021-04-10
        • 1970-01-01
        • 2018-02-19
        • 2021-07-24
        • 2020-11-08
        • 2021-05-22
        • 2019-05-30
        相关资源
        最近更新 更多