Как узнать, какая версия 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)
Шпаргалка по установке CUDA, cuDNN, Tensorflow и PyTorch на Windows 10

В очередной раз после переустановки Windows осознал, что надо накатить драйвера, CUDA, cuDNN, Tensorflow/Keras для обучения нейронных сетей.
Каждый раз для меня это оказывается несложной, но времязатратной операцией: найти подходящую комбинацию Tensorflow/Keras, CUDA, cuDNN и Python несложно, но вспоминаю про эти зависимости только в тот момент, когда при импорте Tensorflow вижу, что видеокарта не обнаружена и начинаю поиск нужной страницы в документации Tensorflow.
В этот раз ситуация немного усложнилась. Помимо установки Tensorflow мне потребовалось установить PyTorch. Со своими зависимостями и поддерживаемыми версиями Python, CUDA и cuDNN.
По итогам нескольких часов экспериментов решил, что надо зафиксировать все полезные ссылки в одном посте для будущего меня.
Краткий алгоритм установки Tensorflow и PyTorch
Примечание: Установить Tensorflow и PyTorch можно в одном виртуальном окружении, но в статье этого алгоритма нет.
Подготовка к установке
- Определить какая версия Python поддерживается Tensorflow и PyTorch (на момент написания статьи мне не удалось установить PyTorch в виртуальном окружении с Python 3.9.5)
- Для выбранной версии Python найти подходящие версии Tensorflow и PyTorch
- Определить, какие версии CUDA поддерживают выбранные ранее версии Tensorflow и PyTorch
- Определить поддерживаемую версию cuDNN для Tensorflow – не все поддерживаемые CUDA версии cuDNN поддерживаются Tensorflow. Для PyTorch этой особенности не заметил
Установка CUDA и cuDNN
- Скачиваем подходящую версию CUDA и устанавливаем. Можно установить со всеми значениями по умолчанию
- Скачиваем cuDNN, подходящую для выбранной версии Tensorflow (п.1.2). Для скачивания cuDNN потребуется регистрация на сайте NVidia. “Установка” cuDNN заключается в распакове архива и заменой существующих файлов CUDA на файлы из архива
Устанавливаем Tensorflow
- Создаём виртуальное окружение для Tensorflow c выбранной версией Python. Назовём его, например, py38tf
- Переключаемся в окружение py38tf и устанавливаем поддерживаемую версию Tensorflow pip install tensorflow==x.x.x
- Проверяем поддержку GPU командой
python -c "import tensorflow as tf; print('CUDA available' if tf.config.list_physical_devices('GPU') else 'CUDA not available')"
Устанавливаем PyTorch
- Создаём виртуальное окружение для PyTorch c выбранной версией Python. Назовём его, например, py38torch
- Переключаемся в окружение py38torch и устанавливаем поддерживаемую версию PyTorch
- Проверяем поддержку 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 версии 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 я ошибки с таким кодом не нашёл. В чём может быть проблема?
TensorFlow для начинающих. Часть 1: общие сведения, установка библиотеки
TensorFlow — это опенсорсная библиотека, созданная Google, которая используется при разработке систем, использующих технологии машинного обучения. Эта библиотека включает в себя реализацию множества мощных алгоритмов, рассчитанных на решение распространённых задач машинного обучения, среди которых можно отметить распознавание образов и принятие решений.

Этот материал посвящён основам TensorFlow и рассчитан на читателей, которые ничего не знают о данной библиотеке.
TensorFlow: современная библиотека машинного обучения
Проект TensorFlow был переведён Google в разряд опенсорсных в 2015 году. Его предшественником был проект DistBelief, годы опыта, накопленные в ходе работы с которым, отразились на TensorFlow.
Разработчики библиотеки TensorFlow стремились к тому, чтобы она была бы гибкой, эффективной, расширяемой, переносимой. В результате ей можно пользоваться в самых разных вычислительных средах — от тех, которые формируются мобильными устройствами, до сред, представленных огромными кластерами. Библиотека позволяет быстро готовить к реальной работе обученные модели, что устраняет необходимость в создании особых реализаций моделей для продакшн-целей.
Библиотека TensorFlow, с одной стороны, привлекает к себе внимание опенсорс-сообщества и открыта для инноваций, а с другой — пользуется поддержкой крупной корпорации. Это позволяет говорить о том, что у неё есть все шансы на стабильное развитие.
Эта библиотека, благодаря совместным усилиям всех тех, кто работает над ней, подходит для решения задач самых разных масштабов. От тех, которые возникают перед самостоятельным разработчиком, до тех, которые встают перед стартапами и даже перед крупными компаниями вроде Google. С того момента, как эта библиотека стала опенсорсной, с ноября 2015 года, она стала одной из интереснейших библиотек машинного обучения. Её всё чаще и чаще используют при проведении исследований, при разработке реальных приложений, при обучении.
TensorFlow постоянно улучшается, её постоянно снабжают чем-то новым, оптимизируют. Кроме того, растёт и сообщество, сформированное вокруг этой библиотеки.
О названии TensorFlow
Тензор (tensor) — это стандартный способ представления данных в системах глубокого обучения. Тензоры — это многомерные массивы, расширение двумерных таблиц (матриц) для представления данных, имеющих более высокие размерности. Проще говоря, тензор — это n-мерная матрица.
В целом, если вы привыкли к работе с матрицами, тензоры можно представлять себе так же, как вы представляете себе матрицы.
Начнём с установки TensorFlow.
Установка TensorFlow
Если вы начинаете работу с чистой установки Python (возможно, вы установили Python специально ради изучения TensorFlow), для установки TensorFlow достаточно воспользоваться pip :
pip install tensorflow
Этот подход прост, но у него есть некоторые неприятные особенности. Они заключаются в том, что при установке TensorFlow, вместо уже установленных пакетов, будут установлены определённые версии пакетов-зависимостей этой библиотеки.
Если вы используете существующую установку Python и для других целей, этим методом пользоваться не рекомендуется. Один из способов установки TensorFlow с обходом вышеописанной особенности заключается в использовании виртуального окружения, которым управляет утилита virtualenv . Возможно, у вас уже эта утилита установлена, возможно — нет. Если она у вас не установлена, установить её можно так:
pip install virtualenv
Здесь можно найти подробности о virtualenv .
Для того чтобы установить TensorFlow в виртуальном окружении, сначала нужно такое окружение создать. Мы собираемся разместить его в папке ~/envs , но вы можете выбрать и другую, более подходящую вам папку:
cd ~ mkdir envs virtualenv ~/envs/tensorflow
Выше мы создали виртуальное окружение tensorflow в папке ~/envs (оно представлено папкой ~/envs/tensorflow ). Для того чтобы активировать это окружение, воспользуемся следующей командой:
source ~/envs/tensorflow/bin/activate
После этого приглашение командной строки должно измениться, указывая на активированное виртуальное окружение:
(tensorflow)
Теперь можно установить TensorFlow в виртуальное окружение с использованием pip :
(tensorflow) pip install tensorflow
Такая установка не повлияет на другие пакеты, установленные на компьютере.
Для выхода из виртуального окружения можно воспользоваться такой командой:
(tensorflow) deactivate
После этого приглашение командной строки примет обычный вид.
До недавних пор TensorFlow было очень сложно использовать в среде Windows. Однако после выхода TensorFlow 0.12 особых проблем в этой сфере больше не наблюдается. А именно, для установки CPU-версии TensorFlow под Windows достаточно выполнить следующую команду:
pip install tensorflow
А для установки GPU-версии — следующую:
pip install tensorflow-gpu
При установке такой версии TensorFlow предполагается, что у вас уже есть CUDA 8.
Теперь библиотека TensorFlow на вашем компьютере установлена, а значит, пришло время с ней поработать. Начнём, как это обычно бывает при изучении новых технологий, с «Hello World!».
Уважаемые читатели! Этот материал представляет собой перевод начала данной публикации, посвящённой основам TensorFlow. Как вы думаете, стоит ли переводить её дальше?