Почему Tensorflow не распознает мой GPU после установки conda?

Я новичок в глубоком обучении, и последние 2 дня я тщетно пытался установить версию tensorflow-gpu на свой компьютер. Я избегал установки драйверов CUDA и cuDNN, так как несколько интернет-форумов не рекомендуют это из-за многочисленных проблем с совместимостью. Поскольку я уже использовал дистрибутив Python conda раньше, я выбрал conda install -c anaconda tensorflow-gpu, как написано на их официальном сайте здесь: https://anaconda.org/anaconda/tensorflow-gpu.

Однако даже после установки версии gpu в новой виртуальной среде (во избежание потенциальных конфликтов с установленными pip библиотеками в базовой среде) tensorflow, похоже, даже не распознает мой GPU по какой-то загадочной причине.

Некоторые фрагменты кода, которые я запускал (в приглашении anaconda), чтобы понять, что он не распознает мой графический процессор: -

1.

>>>from tensorflow.python.client import device_lib
        >>>print(device_lib.list_local_devices())
                    [name: "/device:CPU:0"
                device_type: "CPU"
                memory_limit: 268435456
                locality {
                }
                incarnation: 7692219132769779763
                ]

Как видите, он полностью игнорирует GPU.

2.

>>>tf.debugging.set_log_device_placement(True)
    >>>a = tf.constant([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]])
2020-12-13 10:11:30.902956: I tensorflow/core/platform/cpu_feature_guard.cc:142] This 
TensorFlow 
binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU 
instructions in performance-critical operations:  AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
>>>b = tf.constant([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]])
>>>c = tf.matmul(a, b)
>>>print(c)
tf.Tensor(
[[22. 28.]
[49. 64.]], shape=(2, 2), dtype=float32)

Здесь должно было быть указано, что он работает с графическим процессором, показывая Executing op MatMul in device /job:localhost/replica:0/task:0/device:GPU:0 (как написано здесь: https://www.tensorflow.org/guide/gpu), но ничего подобного нет. Также я не уверен, что означает сообщение после 2-й строки.

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

Я больше не использую cmd, так как переменные среды каким-то образом перепутались после удаления tensorflow-cpu из базовой среды и переустановки, он отлично работал с приглашением anaconda, но не с cmd. Это отдельная проблема (и также широко распространенная), но я упомянул ее на случай, если она сыграет здесь роль. Я установил версию gpu в новой виртуальной среде, чтобы обеспечить чистую установку, и, насколько я понимаю, переменные пути необходимо настраивать только для ручной установки библиотек CUDA и cuDNN.

Карта, которую я использую: - (с поддержкой CUDA)

C:\WINDOWS\system32>wmic path win32_VideoController get name
Name
NVIDIA GeForce 940MX
Intel(R) HD Graphics 620

Версия Tensorflow и Python, которую я использую в настоящее время: -

>>> import tensorflow as tf
>>> tf.__version__
'2.3.0'

Python 3.8.5 (default, Sep  3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.

Информация о системе: Windows 10 Домашняя, 64-разрядная операционная система, процессор на базе x64.

Любая помощь могла бы быть полезна. Заранее спасибо.

Извините за плохое форматирование, StackOverflow не позволял мне опубликовать вопрос без «отступа» в коде терминала.

Sarosij Bose 13.12.2020 07:58

У меня такая же проблема. Я обнаружил, что когда я это сделал conda list, я увидел, что cudatoolkit не был установлен для меня, хотя был установлен tensorflow-gpu. Я также видел, что cudnn не был установлен. Я пытаюсь conda install это сейчас. Когда я это сделал conda install cudnn, мне потребовалось перейти с cudatoolkit 11, который я только что установил, на cudatoolkit 10. Возможно, conda create -n tf-gpu tensorflow-gpu не работает с последними выпусками (например, cudatoolkit 11).

user3731622 16.12.2020 01:47

@ user3731622 да, мне тоже пришлось понизить версию. Похоже, conda еще не поддерживает более новые библиотеки Tf и CUDA.

Sarosij Bose 16.12.2020 16:48

Мне удалось установить TensorFlow 2.1 с помощью conda, а затем использовать pip для установки TensorFlow 2.4. Мне не нравится смешивать conda и pip, но это способ запустить новую версию TensorFlow.

user3731622 17.12.2020 20:45
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
30
4
60 149
11
Перейти к ответу Данный вопрос помечен как решенный

Ответы 11

Вам нужно будет установить cuDNN и набор инструментов CUDA, чтобы использовать ваш GPU.

Сначала проверьте совместимую версию здесь.

cuDNN можно найти здесь (требуется бесплатная учетная запись).

Инструментарий CUDA можно найти здесь.

Опять же, проверьте наличие совместимой версии ПЕРЕД установкой. Более новые версии не имеют обратной совместимости.

но разве они не устанавливаются автоматически, когда я устанавливаю tensorflow-gpu с conda?

Sarosij Bose 13.12.2020 08:19

Нет, это низкоуровневые библиотеки, не относящиеся к Python.

Royce Schultz 13.12.2020 08:24

да, это правда, но я видел здесь, что внешняя установка не требуется: по направлению к datascience.com/…

Sarosij Bose 13.12.2020 08:46

Я не использую conda, поэтому я не уверен, но он говорит: «установите все пакеты, необходимые для tensorflow-gpu, включая версии, совместимые с cuda и cuDNN», а не cuda или cuDNN. Это может быть способ управления ранее установленными пакетами без графического процессора.

Royce Schultz 13.12.2020 08:58

да, но в списке пакетов есть cuDNN и cuda. Вы активировали свою среду?

Royce Schultz 13.12.2020 09:01

Это неправильно. Conda установит все необходимые компоненты среды выполнения из набора инструментов CUDA и набора CNN. Что он не установит, так это поддерживаемый драйвер NVIDIA GPU.

talonmies 13.12.2020 09:25

Я вижу, что у вашего графического процессора вычислительная мощность 5.0, что нормально, TensorFlow должно понравиться. Таким образом, я предполагаю, что что-то пошло не так во время настройки среды. Пожалуйста, попробуйте создать новую среду, используя:

conda create --name tf_gpu tensorflow-gpu 

Затем установите все остальные пакеты, которые вы хотите, в tf_gpu и повторите попытку.

P.S: очень важно, чтобы в среде у вас был только один пакет TensorFlow (с GPU). Если у вас их несколько, нет гарантии, что

import tensorflow as tf

будет импортировать тот, который вы хотите ...

Я также не смог (пока) заставить TF 2.3.0 распознавать мой графический процессор Nvidia Quadro Pro 620.

Примечание. У меня есть 2 других «среды» на этом ПК (Windows Pro). Все они установлены через Anaconda:

  1. Python 3.7.8 TF 2.0.0... распознает (и использует) графический процессор Nvidia
  2. Python 3.6.9 TF 2.1.0... распознает (и использует) графический процессор Nvidia
  3. Python 3.8.6 TF 2.3.0... НЕ видит GPU

Моя машина имеет Cuda 11.1; cuDNN 8.0.5

Моя следующая мысль — рассмотреть возможность понижения версии Python с 3.8.6 до 3.7.8 в 3-й конфигурации, где TF = 2.3.0.

Стив

Ответ принят как подходящий

Август 2021 г. Установка Conda может работать сейчас, поскольку, согласно @ComputerScientist в комментариях ниже, conda install tensorflow-gpu==2.4.1 даст cudatoolkit-10.1.243 и cudnn-7.6.5

Следующее было написано в январе 2021 года и устарело.

В настоящее время conda install tensorflow-gpu устанавливает tensorflow v2.3.0 и НЕ устанавливает пакеты conda cudnn или cudatoolkit. Установка их вручную (например, с помощью conda install cudatoolkit=10.1), похоже, также не решает проблему.

Решение состоит в том, чтобы установить более раннюю версию tensorflow, которая устанавливает cudnn и cudatoolkit, а затем обновить с помощью pip.

conda install tensorflow-gpu=2.1
pip install tensorflow-gpu==2.3.1

(2.4.0 использует cuda 11.0 и cudnn 8.0, однако cudnn 8.0 отсутствует в анаконде по состоянию на 12.16.2020)

Обновлено: см. также ответ @GZ0, который ссылается на обсуждение github с однострочным решением.

Спасибо @geometrikal, это помогло мне!

Sarosij Bose 16.12.2020 16:44

Пытался решить это некоторое время. Спасибо!

Edward 24.12.2020 18:57

Привет, @geometrikal, я пытаюсь следовать вашему ответу при создании новой среды (в Win10), например: ```conda create -n tf_gpu_2_3tensorflow-gpu=2.1 --> pip install tensorflow-gpu==2.3.1` `` Но это делает среду несовместимой, и tf-gpu не обнаруживает GPU в python. Я делаю что-то неправильно?

tu_curious 10.01.2021 21:02

@TusharAgarwal попробуйте conda create -n tf_231 python=3.7, conda активирует tf_231, conda install tensorflow-gpu=2.1, pip install tensorflow-gpu==2.3.1. Обратите внимание, что «-gpu» может не понадобиться

geometrikal 10.01.2021 21:06

@TusharAgarwal См. этот пост, чтобы найти обходной путь.

GZ0 13.01.2021 03:00

@ GZ0, пожалуйста, добавьте и этот пост в качестве ответа

geometrikal 13.01.2021 13:21

@GZ0 geometrikal: Спасибо вам обоим. Оба подхода сработали в контексте вопроса ОП, но в данный момент я не смог достичь своей конечной цели. Я пытался использовать последний cudatoolkit, но мне нужно это выяснить или дождаться другого обновления от anaconda.

tu_curious 15.01.2021 22:03

@TusharAgarwal В этом случае я бы предложил установить все зависимые пакеты (с правильными версиями) в conda (cuda, cudnn и т. д.), а затем использовать pip для установки последней версии tensorflow.

GZ0 16.01.2021 01:39

@geometrikal Этот ответ может быть устаревшим. По состоянию на август 2021 года, когда я делаю conda install tensorflow-gpu==2.4.1 на новой машине с Ubuntu 18.04 и новой среде conda, я получаю cudatoolkit-10.1.243 и cudnn-7.6.5, установленные в моей среде conda.

ComputerScientist 29.08.2021 21:15

@geometrikal по состоянию на ноябрь 2021 года он все еще не работает в Windows.

sss 17.10.2021 19:29

Больше невозможно установить tensorflow-gpu==2.4.1 с помощью conda (Windows). Однако ответ GZ0 у меня отлично сработал. Я использую conda install tensorflow-gpu=2.3 tensorflow=2.3=mkl_py38h1fcfbd6_0 cudatoolkit cudnn keras matplotlib.

marcelovca90 27.10.2021 18:01

Решение @geometrikal почти сработало для меня. Но между установкой tensorflow-gpu с conda и установкой tensorflow 2.3 с pip мне нужно было удалить части tensorflow пакета tensorflow-gpu, чтобы избежать предупреждений о согласованности от pip. Conda удалила бы весь пакет. Я знаю Conda не рекомендует смешивать pip с conda но это решение сработало, и я устал тратить еще один день на эту проблему.

conda create -n tfgpu python=3.7
conda activate tfgpu
conda install tensorflow-gpu=2.1

pip uninstall tensorflow
pip uninstall tensorflow-estimator
pip uninstall tensorboard 
pip uninstall tensorboard-plugin-wit
pip install tensorflow==2.3
pip check

Проблема в том, что spyder, jupyter и т. д. установлены в базовой среде и не распознают установку тензорного потока. Теперь я не могу снова установить каждый пакет в новой среде tensorflow.

samarendra chandan bindu Dash 01.05.2021 06:04

@samarendrachandanbinduDash Извините, у меня нет опыта работы со spyder или jupyter. Я использую Pycharm только в сочетании с conda.

tobi.tobt 23.06.2021 13:04

Сборка tensorflow, автоматически выбранная Anaconda в Windows 10 во время установки tensorflow-gpu 2.3, кажется ошибочной. Пожалуйста, найдите обходной путь здесь (подумайте о том, чтобы проголосовать за ответ GitHub, если у вас есть учетная запись GitHub).

Только для Windows: Python 3.7: conda install tensorflow-gpu=2.3 tensorflow=2.3=mkl_py37h936c3e2_0

Python 3.8: conda install tensorflow-gpu=2.3 tensorflow=2.3=mkl_py38h1fcfbd6_0

исправить мою проблему, спасибо

Yiling Liu 31.05.2021 11:34

На полпути к 15-й странице я просмотрел TL; DR и нашел это? и это работает? бесценный!

J B 05.06.2021 17:32

На windows 10 работало, а на ubuntu 2.3 недоступно. Спасибо!

Macumbaomuerte 29.09.2021 17:25

удивительно и грустно одновременно

t0b4cc0 10.02.2022 03:39

Использование conda для установки TensorFlow всегда является лучшим способом управления несколькими версиями самого TensorFlow, а также CUDA и CUDNN. Недавно я создал новую среду conda и готовлюсь установить новейший TensorFlow. Я также столкнулся с проблемой, о которой вы упомянули. Я проверил список зависимостей от conda install tensorflow-gpu и обнаружил, что пакеты cudatoolkit и cudnn отсутствуют. Поскольку последняя версия tensorflow-gpu в Anaconda — 2.3, я думаю, что проблема уже была указана в ответе @ GZ0 на GitHub.

Здесь я перечисляю вывод ниже:

Использование conda install tensorflow=2.3:

PS > conda install tensorflow-gpu=2.3
## Package Plan ##

  environment location: C:\Anaconda3\envs\test_cuda_38

  added / updated specs:
    - tensorflow-gpu=2.3


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    absl-py-0.12.0             |   py38haa95532_0         176 KB
    aiohttp-3.7.4              |   py38h2bbff1b_1         513 KB
    astunparse-1.6.3           |             py_0          17 KB
    async-timeout-3.0.1        |   py38haa95532_0          14 KB
    blas-1.0                   |              mkl           6 KB
    blinker-1.4                |   py38haa95532_0          23 KB
    brotlipy-0.7.0             |py38h2bbff1b_1003         412 KB
    cachetools-4.2.1           |     pyhd3eb1b0_0          13 KB
    cffi-1.14.5                |   py38hcd4344a_0         224 KB
    chardet-3.0.4              |py38haa95532_1003         194 KB
    click-7.1.2                |     pyhd3eb1b0_0          64 KB
    coverage-5.5               |   py38h2bbff1b_2         272 KB
    cryptography-3.4.7         |   py38h71e12ea_0         643 KB
    cython-0.29.23             |   py38hd77b12b_0         1.7 MB
    gast-0.4.0                 |             py_0          15 KB
    google-auth-1.29.0         |     pyhd3eb1b0_0          76 KB
    google-auth-oauthlib-0.4.4 |     pyhd3eb1b0_0          18 KB
    google-pasta-0.2.0         |             py_0          46 KB
    grpcio-1.36.1              |   py38hc60d5dd_1         1.7 MB
    h5py-2.10.0                |   py38h5e291fa_0         841 KB
    hdf5-1.10.4                |       h7ebc959_0         7.9 MB
    icc_rt-2019.0.0            |       h0cc432a_1         6.0 MB
    idna-2.10                  |     pyhd3eb1b0_0          52 KB
    importlib-metadata-3.10.0  |   py38haa95532_0          34 KB
    intel-openmp-2021.2.0      |     haa95532_616         1.8 MB
    keras-applications-1.0.8   |             py_1          29 KB
    keras-preprocessing-1.1.2  |     pyhd3eb1b0_0          35 KB
    libprotobuf-3.14.0         |       h23ce68f_0         1.9 MB
    markdown-3.3.4             |   py38haa95532_0         144 KB
    mkl-2021.2.0               |     haa95532_296       115.5 MB
    mkl-service-2.3.0          |   py38h2bbff1b_1          49 KB
    mkl_fft-1.3.0              |   py38h277e83a_2         137 KB
    mkl_random-1.2.1           |   py38hf11a4ad_2         223 KB
    multidict-5.1.0            |   py38h2bbff1b_2          61 KB
    numpy-1.20.1               |   py38h34a8a5c_0          23 KB
    numpy-base-1.20.1          |   py38haf7ebc8_0         4.2 MB
    oauthlib-3.1.0             |             py_0          91 KB
    opt_einsum-3.1.0           |             py_0          54 KB
    protobuf-3.14.0            |   py38hd77b12b_1         242 KB
    pyasn1-0.4.8               |             py_0          57 KB
    pyasn1-modules-0.2.8       |             py_0          72 KB
    pycparser-2.20             |             py_2          94 KB
    pyjwt-1.7.1                |           py38_0          48 KB
    pyopenssl-20.0.1           |     pyhd3eb1b0_1          49 KB
    pyreadline-2.1             |           py38_1         145 KB
    pysocks-1.7.1              |   py38haa95532_0          31 KB
    requests-2.25.1            |     pyhd3eb1b0_0          52 KB
    requests-oauthlib-1.3.0    |             py_0          23 KB
    rsa-4.7.2                  |     pyhd3eb1b0_1          28 KB
    scipy-1.6.2                |   py38h66253e8_1        13.0 MB
    tensorboard-plugin-wit-1.6.0|             py_0         630 KB
    tensorflow-2.3.0           |mkl_py38h8557ec7_0           6 KB
    tensorflow-base-2.3.0      |eigen_py38h75a453f_0        49.5 MB
    tensorflow-estimator-2.3.0 |     pyheb71bc4_0         271 KB
    termcolor-1.1.0            |   py38haa95532_1           9 KB
    typing-extensions-3.7.4.3  |       hd3eb1b0_0          12 KB
    typing_extensions-3.7.4.3  |     pyh06a4308_0          28 KB
    urllib3-1.26.4             |     pyhd3eb1b0_0         105 KB
    werkzeug-1.0.1             |     pyhd3eb1b0_0         239 KB
    win_inet_pton-1.1.0        |   py38haa95532_0          35 KB
    wrapt-1.12.1               |   py38he774522_1          49 KB
    yarl-1.6.3                 |   py38h2bbff1b_0         153 KB
    ------------------------------------------------------------
                                           Total:       210.0 MB

Использование conda install tensorflow=2.1:

PS > conda install tensorflow-gpu=2.1
## Package Plan ##

  environment location: C:\Anaconda3\envs\test_cuda

  added / updated specs:
    - tensorflow-gpu=2.1


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    _tflow_select-2.1.0        |              gpu           3 KB
    absl-py-0.12.0             |   py37haa95532_0         175 KB
    aiohttp-3.7.4              |   py37h2bbff1b_1         507 KB
    astor-0.8.1                |   py37haa95532_0          47 KB
    async-timeout-3.0.1        |   py37haa95532_0          14 KB
    blas-1.0                   |              mkl           6 KB
    blinker-1.4                |   py37haa95532_0          23 KB
    brotlipy-0.7.0             |py37h2bbff1b_1003         337 KB
    cachetools-4.2.1           |     pyhd3eb1b0_0          13 KB
    cffi-1.14.5                |   py37hcd4344a_0         220 KB
    chardet-3.0.4              |py37haa95532_1003         192 KB
    click-7.1.2                |     pyhd3eb1b0_0          64 KB
    coverage-5.5               |   py37h2bbff1b_2         273 KB
    cryptography-3.4.7         |   py37h71e12ea_0         641 KB
    cudatoolkit-10.1.243       |       h74a9793_0       300.3 MB
    cudnn-7.6.5                |       cuda10.1_0       179.1 MB
    cython-0.29.23             |   py37hd77b12b_0         1.7 MB
    gast-0.2.2                 |           py37_0         155 KB
    google-auth-1.29.0         |     pyhd3eb1b0_0          76 KB
    google-auth-oauthlib-0.4.4 |     pyhd3eb1b0_0          18 KB
    google-pasta-0.2.0         |             py_0          46 KB
    grpcio-1.36.1              |   py37hc60d5dd_1         1.7 MB
    h5py-2.10.0                |   py37h5e291fa_0         808 KB
    hdf5-1.10.4                |       h7ebc959_0         7.9 MB
    icc_rt-2019.0.0            |       h0cc432a_1         6.0 MB
    idna-2.10                  |     pyhd3eb1b0_0          52 KB
    importlib-metadata-3.10.0  |   py37haa95532_0          34 KB
    intel-openmp-2021.2.0      |     haa95532_616         1.8 MB
    keras-applications-1.0.8   |             py_1          29 KB
    keras-preprocessing-1.1.2  |     pyhd3eb1b0_0          35 KB
    libprotobuf-3.14.0         |       h23ce68f_0         1.9 MB
    markdown-3.3.4             |   py37haa95532_0         144 KB
    mkl-2021.2.0               |     haa95532_296       115.5 MB
    mkl-service-2.3.0          |   py37h2bbff1b_1          48 KB
    mkl_fft-1.3.0              |   py37h277e83a_2         133 KB
    mkl_random-1.2.1           |   py37hf11a4ad_2         214 KB
    multidict-5.1.0            |   py37h2bbff1b_2          85 KB
    numpy-1.20.1               |   py37h34a8a5c_0          23 KB
    numpy-base-1.20.1          |   py37haf7ebc8_0         4.1 MB
    oauthlib-3.1.0             |             py_0          91 KB
    opt_einsum-3.1.0           |             py_0          54 KB
    protobuf-3.14.0            |   py37hd77b12b_1         240 KB
    pyasn1-0.4.8               |             py_0          57 KB
    pyasn1-modules-0.2.8       |             py_0          72 KB
    pycparser-2.20             |             py_2          94 KB
    pyjwt-1.7.1                |           py37_0          49 KB
    pyopenssl-20.0.1           |     pyhd3eb1b0_1          49 KB
    pyreadline-2.1             |           py37_1         143 KB
    pysocks-1.7.1              |           py37_1          28 KB
    requests-2.25.1            |     pyhd3eb1b0_0          52 KB
    requests-oauthlib-1.3.0    |             py_0          23 KB
    rsa-4.7.2                  |     pyhd3eb1b0_1          28 KB
    scipy-1.6.2                |   py37h66253e8_1        12.8 MB
    six-1.15.0                 |   py37haa95532_0          51 KB
    tensorboard-plugin-wit-1.6.0|             py_0         630 KB
    tensorflow-2.1.0           |gpu_py37h7db9008_0           4 KB
    tensorflow-base-2.1.0      |gpu_py37h55f5790_0       105.3 MB
    tensorflow-estimator-2.1.0 |     pyhd54b08b_0         251 KB
    tensorflow-gpu-2.1.0       |       h0d30ee6_0           3 KB
    termcolor-1.1.0            |   py37haa95532_1           9 KB
    typing-extensions-3.7.4.3  |       hd3eb1b0_0          12 KB
    typing_extensions-3.7.4.3  |     pyh06a4308_0          28 KB
    urllib3-1.26.4             |     pyhd3eb1b0_0         105 KB
    werkzeug-0.16.1            |             py_0         258 KB
    win_inet_pton-1.1.0        |   py37haa95532_0          35 KB
    wrapt-1.12.1               |   py37he774522_1          49 KB
    yarl-1.6.3                 |   py37h2bbff1b_0         151 KB
    ------------------------------------------------------------
                                           Total:       745.0 MB

Поэтому вы можете установить последнюю версию (v2.3) tensorflow-gpu от Anaconda на платформе Windows, используя советы от @GZ0 и @geometrikal, или просто используя conda install tensorflow-gpu=2.1, чтобы получить новейшую и подходящую среду.

Обратите внимание, что tensorflow-gpu v2.1 поддерживает только Python между 3.5-3.7.

По состоянию на август 2021 года, с TensorFlow 2.4.1, я полагаю, что он устанавливает CUDA и CuDNN в среде conda. Вот что я сделал, чтобы создать новую среду conda на машине с Ubuntu 18.04:

conda create --name tftest python=3.7 -y  &&  conda activate tftest
conda install ipython tensorflow-gpu==2.4.1 -y

Приведенная выше команда перечислит следующие пакеты для установки. Для наших целей обратите внимание на то, как перечислены cudatoolkit и cudnn.

The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    _tflow_select-2.1.0        |              gpu           2 KB
    absl-py-0.13.0             |   py37h06a4308_0         173 KB
    aiohttp-3.7.4              |   py37h27cfd23_1         536 KB
    astor-0.8.1                |   py37h06a4308_0          47 KB
    astunparse-1.6.3           |             py_0          17 KB
    async-timeout-3.0.1        |   py37h06a4308_0          13 KB
    attrs-21.2.0               |     pyhd3eb1b0_0          46 KB
    backcall-0.2.0             |     pyhd3eb1b0_0          13 KB
    blas-1.0                   |              mkl           6 KB
    blinker-1.4                |   py37h06a4308_0          23 KB
    brotlipy-0.7.0             |py37h27cfd23_1003         320 KB
    c-ares-1.17.1              |       h27cfd23_0         108 KB
    cachetools-4.2.2           |     pyhd3eb1b0_0          13 KB
    cffi-1.14.6                |   py37h400218f_0         223 KB
    chardet-3.0.4              |py37h06a4308_1003         175 KB
    charset-normalizer-2.0.4   |     pyhd3eb1b0_0          35 KB
    click-8.0.1                |     pyhd3eb1b0_0          79 KB
    coverage-5.5               |   py37h27cfd23_2         254 KB
    cryptography-3.4.7         |   py37hd23ed53_0         904 KB
    cudatoolkit-10.1.243       |       h6bb024c_0       347.4 MB
    cudnn-7.6.5                |       cuda10.1_0       179.9 MB
    cupti-10.1.168             |                0         1.4 MB
    cython-0.29.24             |   py37h295c915_0         1.9 MB
    decorator-5.0.9            |     pyhd3eb1b0_0          12 KB
    gast-0.4.0                 |     pyhd3eb1b0_0          13 KB
    google-auth-1.33.0         |     pyhd3eb1b0_0          80 KB
    google-auth-oauthlib-0.4.4 |     pyhd3eb1b0_0          18 KB
    google-pasta-0.2.0         |             py_0          46 KB
    grpcio-1.36.1              |   py37h2157cd5_1         1.9 MB
    h5py-2.10.0                |   py37hd6299e0_1         902 KB
    hdf5-1.10.6                |       hb1b8bf9_0         3.7 MB
    idna-3.2                   |     pyhd3eb1b0_0          48 KB
    importlib-metadata-3.10.0  |   py37h06a4308_0          33 KB
    intel-openmp-2021.3.0      |    h06a4308_3350         1.4 MB
    ipython-7.26.0             |   py37hb070fc8_0        1005 KB
    ipython_genutils-0.2.0     |     pyhd3eb1b0_1          27 KB
    jedi-0.18.0                |   py37h06a4308_1         911 KB
    keras-preprocessing-1.1.2  |     pyhd3eb1b0_0          35 KB
    libgfortran-ng-7.5.0       |      ha8ba4b0_17          22 KB
    libgfortran4-7.5.0         |      ha8ba4b0_17         995 KB
    libprotobuf-3.17.2         |       h4ff587b_1         2.0 MB
    markdown-3.3.4             |   py37h06a4308_0         127 KB
    matplotlib-inline-0.1.2    |     pyhd3eb1b0_2          12 KB
    mkl-2021.3.0               |     h06a4308_520       141.2 MB
    mkl-service-2.4.0          |   py37h7f8727e_0          56 KB
    mkl_fft-1.3.0              |   py37h42c9631_2         170 KB
    mkl_random-1.2.2           |   py37h51133e4_0         287 KB
    multidict-5.1.0            |   py37h27cfd23_2          66 KB
    numpy-1.20.3               |   py37hf144106_0          23 KB
    numpy-base-1.20.3          |   py37h74d4b33_0         4.5 MB
    oauthlib-3.1.1             |     pyhd3eb1b0_0          90 KB
    opt_einsum-3.3.0           |     pyhd3eb1b0_1          57 KB
    parso-0.8.2                |     pyhd3eb1b0_0          69 KB
    pexpect-4.8.0              |     pyhd3eb1b0_3          53 KB
    pickleshare-0.7.5          |  pyhd3eb1b0_1003          13 KB
    prompt-toolkit-3.0.17      |     pyh06a4308_0         256 KB
    protobuf-3.17.2            |   py37h295c915_0         319 KB
    ptyprocess-0.7.0           |     pyhd3eb1b0_2          17 KB
    pyasn1-0.4.8               |             py_0          57 KB
    pyasn1-modules-0.2.8       |             py_0          72 KB
    pygments-2.10.0            |     pyhd3eb1b0_0         725 KB
    pyjwt-2.1.0                |   py37h06a4308_0          32 KB
    pyopenssl-20.0.1           |     pyhd3eb1b0_1          49 KB
    pysocks-1.7.1              |           py37_1          27 KB
    python-flatbuffers-1.12    |     pyhd3eb1b0_0          24 KB
    requests-2.26.0            |     pyhd3eb1b0_0          59 KB
    requests-oauthlib-1.3.0    |             py_0          23 KB
    rsa-4.7.2                  |     pyhd3eb1b0_1          28 KB
    scipy-1.6.2                |   py37had2a1c9_1        15.5 MB
    six-1.16.0                 |     pyhd3eb1b0_0          18 KB
    tensorboard-2.4.0          |     pyhc547734_0         8.8 MB
    tensorboard-plugin-wit-1.6.0|             py_0         630 KB
    tensorflow-2.4.1           |gpu_py37ha2e99fa_0           4 KB
    tensorflow-base-2.4.1      |gpu_py37h29c2da4_0       195.2 MB
    tensorflow-estimator-2.5.0 |     pyh7b7c402_0         267 KB
    tensorflow-gpu-2.4.1       |       h30adc30_0           3 KB
    termcolor-1.1.0            |   py37h06a4308_1           9 KB
    traitlets-5.0.5            |     pyhd3eb1b0_0          81 KB
    typing-extensions-3.10.0.0 |       hd3eb1b0_0           8 KB
    typing_extensions-3.10.0.0 |     pyh06a4308_0          27 KB
    urllib3-1.26.6             |     pyhd3eb1b0_1         112 KB
    wcwidth-0.2.5              |             py_0          29 KB
    werkzeug-1.0.1             |     pyhd3eb1b0_0         239 KB
    wrapt-1.12.1               |   py37h7b6447c_1          49 KB
    yarl-1.6.3                 |   py37h27cfd23_0         133 KB
    zipp-3.5.0                 |     pyhd3eb1b0_0          13 KB
    ------------------------------------------------------------
                                           Total:       915.9 MB

Далее запустите ipython и попробуйте:

In [1]: import tensorflow as tf
2021-08-29 12:26:36.582384: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1

In [2]: tf.config.list_physical_devices('GPU')
2021-08-29 12:26:48.676151: I tensorflow/compiler/jit/xla_cpu_device.cc:41] Not creating XLA devices, tf_xla_enable_xla_devices not set
2021-08-29 12:26:48.679894: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcuda.so.1
2021-08-29 12:26:48.975002: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 0 with properties: 
pciBusID: 0000:04:00.0 name: Tesla V100-PCIE-32GB computeCapability: 7.0
coreClock: 1.38GHz coreCount: 80 deviceMemorySize: 31.75GiB deviceMemoryBandwidth: 836.37GiB/s
2021-08-29 12:26:48.979341: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 1 with properties: 
pciBusID: 0000:08:00.0 name: Tesla V100-PCIE-32GB computeCapability: 7.0
coreClock: 1.38GHz coreCount: 80 deviceMemorySize: 31.75GiB deviceMemoryBandwidth: 836.37GiB/s
2021-08-29 12:26:48.981747: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 2 with properties: 
pciBusID: 0000:09:00.0 name: Tesla V100-PCIE-32GB computeCapability: 7.0
coreClock: 1.38GHz coreCount: 80 deviceMemorySize: 31.75GiB deviceMemoryBandwidth: 836.37GiB/s
2021-08-29 12:26:48.990002: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 3 with properties: 
pciBusID: 0000:85:00.0 name: Tesla V100-PCIE-32GB computeCapability: 7.0
coreClock: 1.38GHz coreCount: 80 deviceMemorySize: 31.75GiB deviceMemoryBandwidth: 836.37GiB/s
2021-08-29 12:26:48.992488: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1720] Found device 4 with properties: 
pciBusID: 0000:89:00.0 name: Tesla V100-PCIE-32GB computeCapability: 7.0
coreClock: 1.38GHz coreCount: 80 deviceMemorySize: 31.75GiB deviceMemoryBandwidth: 836.37GiB/s
2021-08-29 12:26:48.992523: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudart.so.10.1
2021-08-29 12:26:49.312793: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublas.so.10
2021-08-29 12:26:49.312907: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcublasLt.so.10
2021-08-29 12:26:49.388961: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcufft.so.10
2021-08-29 12:26:49.413946: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcurand.so.10
2021-08-29 12:26:49.535055: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusolver.so.10
2021-08-29 12:26:49.563142: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcusparse.so.10
2021-08-29 12:26:50.009291: I tensorflow/stream_executor/platform/default/dso_loader.cc:49] Successfully opened dynamic library libcudnn.so.7
2021-08-29 12:26:50.051301: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1862] Adding visible gpu devices: 0, 1, 2, 3, 4
Out[2]: 
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU'),
 PhysicalDevice(name='/physical_device:GPU:1', device_type='GPU'),
 PhysicalDevice(name='/physical_device:GPU:2', device_type='GPU'),
 PhysicalDevice(name='/physical_device:GPU:3', device_type='GPU'),
 PhysicalDevice(name='/physical_device:GPU:4', device_type='GPU')]

In [3]: tf.test.is_built_with_cuda()
Out[3]: True

Эта машина имеет 5 графических процессоров, поэтому вывод выше правильный.

В чем я на самом деле не уверен, так это в том, почему установлены CUDA 10.1 и CuDNN 7.6.5, поскольку кажется из таблицы совместимости Google TF что 2.4.0 (и, предположительно, 2.4.1?) работает с CUDA 11.0 и CuDNN. 8. Если у кого-то есть идеи по этому поводу, не стесняйтесь вмешаться...

Это просто, TF 2.4.0 был создан разработчиком Tensorflow с использованием CUDA 11.0 и cuDNN 8.0. Тот, который существует в Anaconda, был создан разработчиком Anaconda (или членами сообщества) с использованием CUDA 10.1 и cuDNN 7.6.5. Также обратите внимание, что вы можете использовать разные версии CUDA и cuDNN, если вы самостоятельно создаете графический процессор TensorFlow.

RoGuKa 19.11.2021 04:54

Следующие шаги работали для меня:

Делайте так же, как на видео. https://thewikihow.com/video_r31jnE7pR-g

Также установите оценщик тензорного потока, которого нет в видео. На картинке вы можете увидеть мою среду, которая работает на меня.

моё окружение

Может надо версии поменять на одинаковые. Теперь перейдите в Visual Code и запустите свой код в созданной ранее среде anaconda. См. рисунок ниже.

выберите среду

В моем случае это tf_env, который я создал и назвал.

Попробуйте запустить свой код. Если Visual Code говорит, что чего-то не хватает, попробуйте установить его с помощью терминала anaconda. Нажмите кнопку «play», чтобы запустить терминал.

играть Кнопочный терминал

Также закрывайте и открывайте Visual Code, когда вносите изменения, иногда и anaconda. Теперь попробуйте этот код ниже.

> print("Num GPU: ", len(tf.config.list_physical_devices("GPU")))
> 
> print(tf.test.is_gpu_available()) print(tf.test.is_built_with_cuda())



> OUTPUT 
> Num GPU:  1 
> WARNING:tensorflow:From <ipython-input-2-8748de971110>:3:
> is_gpu_available (from tensorflow.python.framework.test_util) is
> deprecated and will be removed in a future version. Instructions for
> updating: Use `tf.config.list_physical_devices('GPU')` instead. 
> True
> True

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

Надеюсь, это поможет вам, ребята :)

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

Nicolas Gervais 08.10.2021 16:30

В моем случае (в апреле 2022 г.):

 conda install tensorflow-gpu=2.3 tensorflow=2.3=mkl_py38h1fcfbd6_0 cudatoolkit cudnn keras matplotlib

Работает отлично!! он установил tensorflow-gpu = 2.3 - cudatoolkit 10.1.243 и cudnn 7.6.5.

Обновлено 26 апреля 2022 г., tensorflow 2.6.0 выполняет свою работу, Python версии 3.8.13

Резюме — в Anaconda Jupyter возникла та же проблема «GPU no show».

«2.3.0»

Проделал процедуру по этой ссылке, опять "GPU no show".

Метод проб и ошибок: описанный ниже обходной путь работает.

  1. Запустить окно CMD из Навигатора (та же среда);
  2. conda install tensorflow=2.6.0 --channel conda-forge -y;
  3. Это займет некоторое время (сбор пакета, резолв среды и т.д.);
  4. В этом случае автоматически обновите версии CUDA и cuDNN до 11.3 и 8.2 соответственно.
  5. После этого выйдите из Anaconda и перезагрузите компьютер.
  6. Вернитесь к Jupyter, запустите ячейку:

сотовый

и проверьте результат:

2.6.0

[PhysicalDevice(name='/physical_device:CPU:0', device_type='CPU'), PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

Другие вопросы по теме