WedX - журнал о программировании и компьютерных науках

Проблема cudnn при использовании OpenNMT-tf 2.10 с tenorflow 2.2 в виртуальном окружении Anaconda

Я пытаюсь обучить модель трансформатора OpenNMT-tf на GPU GeForce RTX 2060 8GB памяти. Вы можете увидеть шаги здесь.

Я создал виртуальную среду Anaconda и установил tenorflow-gpu, используя следующую команду.

conda install tensorflow-gpu==2.2.0

После выполнения вышеуказанной команды conda env все обработает и установит cuda 10.1 и cudnn 7.6.5 в env. Затем я установил openNMT-tf 2.10, который был совместим с tf 2.2 gpu, используя следующую команду.

~/anaconda3/envs/nmt/bin/pip install openNMT-tf==2.10

Приведенная выше команда установит openNMT в среде conda.

Когда я попытался запустить команды, доступные на странице «Quicstart» в документации OpenNMT-tf, он распознал графический процессор при создании словаря. Но когда я начал обучение модели трансформатора, он дает следующую ошибку cudnn.

tensorflow.python.framework.errors_impl.InternalError: 2 root error(s) found.
  (0) Internal:  cuDNN launch failure : input shape ([1,504,512,1])
     [[node transformer_base/self_attention_decoder/self_attention_decoder_layer/transformer_layer_wrapper_12/layer_norm_14/FusedBatchNormV3 (defined at /site-packages/opennmt/layers/common.py:128) ]]
     [[Func/gradients/global_norm/write_summary/summary_cond/then/_302/input/_893/_52]]
  (1) Internal:  cuDNN launch failure : input shape ([1,504,512,1])
     [[node transformer_base/self_attention_decoder/self_attention_decoder_layer/transformer_layer_wrapper_12/layer_norm_14/FusedBatchNormV3 (defined at /site-packages/opennmt/layers/common.py:128) ]]
0 successful operations.
0 derived errors ignored. [Op:__inference__accumulate_next_33440]

Function call stack:
_accumulate_next -> _accumulate_next

2021-03-01 13:01:01.138811: I tensorflow/stream_executor/stream.cc:1990] [stream=0x560490f17b10,impl=0x560490f172c0] did not wait for [stream=0x5604906de830,impl=0x560490f17250]
2021-03-01 13:01:01.138856: I tensorflow/stream_executor/stream.cc:4938] [stream=0x560490f17b10,impl=0x560490f172c0] did not memcpy host-to-device; source: 0x7ff4467f8780
2021-03-01 13:01:01.138957: F tensorflow/core/common_runtime/gpu/gpu_util.cc:340] CPU->GPU Memcpy failed
Aborted (core dumped)

Было бы здорово, если бы кто-нибудь мог направить сюда.

Пс. Я не думаю, что это проблема версии, поскольку я подтвердил, что openNMT-tf 2.10 требует tenorflow 2.2, а с установкой tensorflow-gpu 2.2 anaconda самостоятельно установила cuda 10.1 и cudnn 7.6.5 (по умолчанию обрабатывает зависимость от графического процессора).


Ответы:


1

Это была проблема с памятью. Некоторые люди предлагали некоторые вещи здесь, в StackOverflow, по вопросам cudnn. перед запуском этой команды установите для переменной среды TF_FORCE_GPU_ALLOW_GROWTH значение true.

import os
os.environ['TF_FORCE_GPU_ALLOW_GROWTH'] = "true"
os.systme('onmt-main --model_type Transformer --config data.yml train --with_eval')

Я наконец начал тренироваться, используя приведенный выше сценарий, и это решило мою проблему.

03.03.2021
Новые материалы

Как создать диаграмму градиентной кисти с помощью D3.js
Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


Для любых предложений по сайту: [email protected]