AWS SageMaker + Tensorflow + GPU - PullRequest
       35

AWS SageMaker + Tensorflow + GPU

0 голосов
/ 28 апреля 2020

Я пытаюсь извлечь вложения ELMo и запустить код на AWS SageMaker и TensorFlow. Код отлично работает на экземпляре процессора в SageMaker , но я хочу запустить его на GPU . Ниже перечислены шаги, которые я выполнил, и перечислены ошибки:

  1. Запущен AWS Экземпляр SageMaker: ml.p3.8xlarge - он имеет 8 графических процессоров
  2. Запущен JuperterLab и выбран conda_tensorflow_p36 для ноутбука
  3. Запустил следующий код:

! Pip3 install tenorflow-gpu == 1.15 .
! Pip3 install "тензор потока-концентратор <0.5.0 "</p>

url = "https://tfhub.dev/google/elmo/2"
embed = hub.Module(url)

def defineEmbeddings(start, end, extractions):    
    embeddings = embed(extractions[start:end],signature="default",as_dict=True)["default"]
    return embeddings
def scoreExtractions (embeddings):

    config = tf.compat.v1.ConfigProto(log_device_placement=True)
    config.gpu_options.allow_growth = True
    config.gpu_options.per_process_gpu_memory_fraction = 0.9
    with tf.compat.v1.Session(config=config) as sess:
        sess.run(tf.global_variables_initializer())
        sess.run(tf.tables_initializer())
        x = sess.run(embeddings)
    return x

Я получаю следующую ошибку с sess.run (embeddings)

UnknownError: 2 root найдено ошибок. (0) Неизвестный: Не удалось получить алгоритм свертки. Вероятно, это связано с тем, что cuDNN не удалось инициализировать, поэтому попробуйте посмотреть, не было ли напечатано сообщение журнала предупреждений выше. [[{{node module_apply_default_1 / bilm / CNN_1 / Conv2D}}]] [[module_apply_default_1 / truediv / _155] ] (1) Неизвестно: не удалось получить алгоритм свертки. Вероятно, это связано с тем, что cuDNN не удалось инициализировать, поэтому попробуйте посмотреть, не было ли напечатано сообщение с предупреждением выше. [[{{node module_apply_default_1 / bilm / CNN_1 / Conv2D}}]] 0 успешных операций. 0 производных ошибок игнорируются.

Но следующие действия с вышеуказанной установкой:

with tf.device('/device:GPU:3'):
    a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
    b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
    c = tf.matmul(a, b)
with tf.Session() as sess:
    print(sess.run(c))

Основываясь на моем чтении этой проблемы в StackOverflow, я также попытался использовать tenorflow-gpu = 1.8.0 также и с этим, я получаю ошибку в тензор потока импорта как tf:

ImportError : libcublas.so.9.0: не могу открыть файл общего объекта: Нет такого файла или каталога

...