Экземпляр Sagemaker, не использующий графический процессор во время обучения

#python-3.x #amazon-web-services #machine-learning #tensorflow2.0 #amazon-sagemaker

Вопрос:

Я тренирую модель Seq2Seq на Tensorflow на экземпляре ml.p3.2xlarge. Когда я попытался запустить код в Google colab, время за эпоху составляло около 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 команды, и я все еще получаю то же самое время. Я делаю что-то не так?

Ответ №1:

Если вы используете экземпляр ноутбука SageMaker. Откройте терминал и запустите nvidia-smi, чтобы увидеть коэффициент использования графического процессора. Если у вас 0%, значит, вы используете не то устройство. Если она превышает 0%, но очень далека от 100%, то вам предстоит справиться с узким местом, не связанным с графическим процессором.
Если вы используете обучение SageMaker, проверьте использование графического процессора с помощью показателей Cloudwatch для выполнения задания.

Ответ №2:

Мне пришлось принудительно использовать графический процессор с помощью

 with tf.device('/device:GPU:0')
 

Ответ №3:

Если вы используете ноутбук Sagemaker на экземпляре GPU с instance_type='local' оценкой Tensorflow, по-видимому, по умолчанию используется процессор…

Я решил эту проблему, установив: instance_type='local_gpu' вместо этого.

Комментарии:

1. это была Работа по Обучению Мудрецов