#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. это была Работа по Обучению Мудрецов