Перейти к содержимому

Как узнать версию tensorflow

  • автор:

Шпаргалка по установке CUDA, cuDNN, Tensorflow и PyTorch на Windows 10

Author's picture

В очередной раз после переустановки Windows осознал, что надо накатить драйвера, CUDA, cuDNN, Tensorflow/Keras для обучения нейронных сетей.

Каждый раз для меня это оказывается несложной, но времязатратной операцией: найти подходящую комбинацию Tensorflow/Keras, CUDA, cuDNN и Python несложно, но вспоминаю про эти зависимости только в тот момент, когда при импорте Tensorflow вижу, что видеокарта не обнаружена и начинаю поиск нужной страницы в документации Tensorflow.

В этот раз ситуация немного усложнилась. Помимо установки Tensorflow мне потребовалось установить PyTorch. Со своими зависимостями и поддерживаемыми версиями Python, CUDA и cuDNN.

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

Краткий алгоритм установки Tensorflow и PyTorch

Примечание: Установить Tensorflow и PyTorch можно в одном виртуальном окружении, но в статье этого алгоритма нет.

Подготовка к установке

  1. Определить какая версия Python поддерживается Tensorflow и PyTorch (на момент написания статьи мне не удалось установить PyTorch в виртуальном окружении с Python 3.9.5)
  2. Для выбранной версии Python найти подходящие версии Tensorflow и PyTorch
  3. Определить, какие версии CUDA поддерживают выбранные ранее версии Tensorflow и PyTorch
  4. Определить поддерживаемую версию cuDNN для Tensorflow – не все поддерживаемые CUDA версии cuDNN поддерживаются Tensorflow. Для PyTorch этой особенности не заметил

Установка CUDA и cuDNN

  1. Скачиваем подходящую версию CUDA и устанавливаем. Можно установить со всеми значениями по умолчанию
  2. Скачиваем cuDNN, подходящую для выбранной версии Tensorflow (п.1.2). Для скачивания cuDNN потребуется регистрация на сайте NVidia. “Установка” cuDNN заключается в распакове архива и заменой существующих файлов CUDA на файлы из архива

Устанавливаем Tensorflow

  1. Создаём виртуальное окружение для Tensorflow c выбранной версией Python. Назовём его, например, py38tf
  2. Переключаемся в окружение py38tf и устанавливаем поддерживаемую версию Tensorflow pip install tensorflow==x.x.x
  3. Проверяем поддержку GPU командой
python -c "import tensorflow as tf; print('CUDA available' if tf.config.list_physical_devices('GPU') else 'CUDA not available')" 

Устанавливаем PyTorch

  1. Создаём виртуальное окружение для PyTorch c выбранной версией Python. Назовём его, например, py38torch
  2. Переключаемся в окружение py38torch и устанавливаем поддерживаемую версию PyTorch
  3. Проверяем поддержку GPU командой
python -c "import torch; print('CUDA available' if torch.cuda.is_available() else 'CUDA not available')" 

В моём случае заработала комбинация:

  • Python 3.8.8
  • Драйвер NVidia 441.22
  • CUDA 10.1
  • cuDNN 7.6
  • Tensorflow 2.3.0
  • PyTorch 1.7.1+cu101

Tensorflow и PyTorch установлены в разных виртуальных окружениях.

Итого

Польза этой статьи будет понятна не скоро: систему переустанавливаю я не часто.

Если воспользуетесь этим алгоритмом и найдёте какие-то ошибки – пишите в комментарии

Как узнать, какая версия TensorFlow установлена в моей системе?

Это зависит от того, как вы установили TensorFlow. Я собираюсь использовать те же заголовки, что и инструкции по установке TensorFlow, чтобы структурировать этот ответ.

Установка пистолета

python -c 'import tensorflow as tf; print(tf.__version__)' # for Python 2 python3 -c 'import tensorflow as tf; print(tf.__version__)' # for Python 3 

Обратите внимание, что python символически привязан к /usr/bin/python3 в некоторых дистрибутивах Linux, поэтому используйте python вместо python3 в этих случаях. pip list | grep tensorflow для Python 2 или pip3 list | grep tensorflow для Python 3 также будет показана версия Tensorflow.

Установка Virtualenv

python -c 'import tensorflow as tf; print(tf.__version__)' # for both Python 2 and Python 3 

pip list | grep tensorflow также покажет версию Tensorflow. Например, я установил TensorFlow 0.9.0 в virtualenv для Python 3. Итак, я получаю:

$ python -c 'import tensorflow as tf; print(tf.__version__)' 0.9.0 $ pip list | grep tensorflow tensorflow (0.9.0) 

Установка Tensorflow + Python на Windows.

Развитие машинного обучения неизбежно приводит к появления удобных инструментов для повышения качества работы. Одним из таких инструментов стал фреймворк Tensorflow . Сегодня мы разберемся как установить данный фреймворк, если базовой системой является Windows 10, а работать он должен с вашей видеокартой Nvidia (для примера GTX 1060).

1. Исследование зависимостей.

В данный момент на вашей машине установлена ОС Windows 10, которая уже видит вашу видеокарту. Теперь надо выяснить какие обязательные компоненты для работы с Tensorflow нам необходимы. Для этого заходим на на официальный сайт https://www.tensorflow.org/install/source_windows и в самом низу страницы видим таблицу совместимостей. Нас интересует таблица для версии GPU . Выбираем интересующую нас версию Tensorflow , для примера 1.13.0. Теперь можно определить необходимый набор компонент для установки:

— Python 3.5 – 3.7 (установим 3.6).

2. Загрузка дистрибутивов.

Чтобы скачать python 3.6 перейдем на официальный сайт и выберем версию доступную для скачивания в виде инсталлятора под windows . Переходим на https://www.python.org/downloads/release/python-368/ и выбираем « Windows x86-64 executable installer»(Рисунок 1).

Без имени-2

Рисунок 1 — Страница загрузки инсталлятора Python 3.6.

Для загрузки cuDNN переходим на https://developer.nvidia.com/rdp/cudnn-archive и скачиваем соответствующую версию( Рисунок 2 ).

Без имени-4

Рисунок 2 — Страница загрузки библиотеки cuDNN 7.4.

Без имени-6

Рисунок 3 — Страница загрузки CUDA 10.

Tensorflow мы загрузим после установки Python .

3. Установка Python .

Запускаем дистрибутив и выбираем кастомную инсталляцию ( Рисунок 4 ) .

Без имени-13

Рисунок 4 — Выбор режима установки Python 3.6.

В следующем окне нужно проставить все галочки и нажать кнопку NEXT ( Рисунок 5 ) .

Без имени-14

Рисунок 5 — Параметры установки Python 3.6.

На последней странице отметьте все галочки как на рисунке 6 и жмите Install .

Без имени-15

Рисунок 6 — Расширенные параметры установки Python 3.6.

Дождитесь завершения установки. После чего откройте командную строку и введите в не q «python». Если вы увидите в выводе версию вашего python , значит установка прошла успешно.

4. Установка CUDA

Запустите дистрибутив и перейдите к выборочной установке. В первом окне снимите все галочки кроме раздела « CUDA »( Рисунок 7 ).

Без имени-19

Рисунок 7 — Параметры установки CUDA 10.

Нажмите далее и на следующей странице оставьте все пути по умолчанию. Дождитесь завершения установки.

5. Распаковка cuDNN .

Распакуйте архив cuDNN в удобное место и внести в переменную PATH путь до папки bin с библиотекой cudnn64_7.dll.

6. Установка Tensorflow .

В командной строке введите

pip install --upgrade tensorflow-gpu==1.13.2

Начнется установка Tensorflow . По завершению в командной строке введите

python -c "import tensorflow as tf;print(tf.reduce_sum(tf.random.normal([1000, 1000])))"

Если команда выполнилась без ошибок, значит Tensorflow установлен правильно и готов к работе.

Возможные проблемы

Проблемы могут быть связаны в первую очередь с тем, что не все библиотеки видны. Убедитесь что в переменной среды PATH прописаны пути до скриптов и исполняемого файла Python «\Python\Python36\Scripts\» и » \Python\Python36\ «. Прописан путь до папки из пакета cuDNN «\cuda\bin». Прописаны пути до набора инструментов CUDA «\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin» и «\ NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp». Так же работоспособность может быть нарушена, если отсутствует соответствующий распространяемый пакет visual C++ для Visual Studio(в нашем случае 2015).

  • ← Nlp. Вложения
  • Установка TensorFlow на Ubuntu 18.04/CUDA/TensorRT →

Почему tensorflow версии 2.5 и выше работает, а 2.4 и ниже нет?

Мне понадобилась использовать более старую версию tensorflow для работы с этим репозиторием, так как там используется версия 2.3, а попробовав использовать последнюю версию 2.6 я получил ошибку при конвертации из tf в tflite. Но установив tensorflow 2.3, и просто импортировав его, я получил вот такой столбик ошибок:

import tensorflow ImportError Traceback (most recent call last) E:\PitonGandon\lib\site-packages\tensorflow\python\pywrap_tensorflow.py in 63 try: ---> 64 from tensorflow.python._pywrap_tensorflow_internal import * 65 # This try catch logic is because there is no bazel equivalent for py_extension. ImportError: DLL load failed with error code 3221225501 while importing _pywrap_tensorflow_internal During handling of the above exception, another exception occurred: ImportError Traceback (most recent call last) in ----> 1 import tensorflow E:\PitonGandon\lib\site-packages\tensorflow\__init__.py in 39 import sys as _sys 40 ---> 41 from tensorflow.python.tools import module_util as _module_util 42 from tensorflow.python.util.lazy_loader import LazyLoader as _LazyLoader 43 E:\PitonGandon\lib\site-packages\tensorflow\python\__init__.py in 38 # pylint: disable=wildcard-import,g-bad-import-order,g-import-not-at-top 39 ---> 40 from tensorflow.python.eager import context 41 42 # pylint: enable=wildcard-import E:\PitonGandon\lib\site-packages\tensorflow\python\eager\context.py in 33 from tensorflow.core.protobuf import config_pb2 34 from tensorflow.core.protobuf import rewriter_config_pb2 ---> 35 from tensorflow.python import pywrap_tfe 36 from tensorflow.python import tf2 37 from tensorflow.python.client import pywrap_tf_session E:\PitonGandon\lib\site-packages\tensorflow\python\pywrap_tfe.py in 26 27 # pylint: disable=invalid-import-order,g-bad-import-order, wildcard-import, unused-import ---> 28 from tensorflow.python import pywrap_tensorflow 29 from tensorflow.python._pywrap_tfe import * E:\PitonGandon\lib\site-packages\tensorflow\python\pywrap_tensorflow.py in 81 for some common reasons and solutions. Include the entire stack trace 82 above this error message when asking for help.""" % traceback.format_exc() ---> 83 raise ImportError(msg) 84 85 # pylint: enable=wildcard-import,g-import-not-at-top,unused-import,line-too-long ImportError: Traceback (most recent call last): File "E:\PitonGandon\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 64, in from tensorflow.python._pywrap_tensorflow_internal import * ImportError: DLL load failed with error code 3221225501 while importing _pywrap_tensorflow_internal Failed to load the native TensorFlow runtime. See https://www.tensorflow.org/install/errors for some common reasons and solutions. Include the entire stack trace above this error message when asking for help. 

Затем попробовал 2.2 и 2.4, но они выдавали ту же ошибку, потом я установил 2.5, которая благополучно заработала, но не работал уже код. Следуя разным советам в интернете, я переустановил анаконду, все библиотеки vs c++ и версию cuda с cudnn как в таблице на сайте tensorflow поставил, но ничего не поменялось. На сайте tensorflow я ошибки с таким кодом не нашёл. В чём может быть проблема?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *