Я попытался настроить Tensorflow для одного из своих проектов, и это оказалось хуже, чем я ожидал. В Интернете было много потоков, которые я нашел полезными, но, к сожалению, они не работали для меня (не поймите меня неправильно, все они помогли мне придумать чистый способ настроить Tensorflow для нормальной работы с моим графическим процессором. :П). Поэтому я решил создать этот документ для себя и всех, кто хочет настроить Tensorflow для своего графического процессора, но вначале заблудился. Надеюсь, это поможет и сэкономит вам пару дней поиска в Интернете и расспросов :). В конце я помещу все темы, которые помогли мне это написать. Вы можете найти их полезными в вашем случае.

Эти шаги сработали для меня, и у меня есть машина с Windows 10, мой графический процессор - NVIDIA GEFORCE RTX 2080 Ti, и я установил его на python 3.7 (время написания: 17.08.2019).

Если вы хотите запустить Tensorflow на ЦП, просто перейдите к шагу 12.

Шаг 1. Установите Python на свой компьютер.

Вам необходимо установить Python на свой компьютер. Это должен быть 64-битный питон, иначе вы получите ошибку «колесо не поддерживается на этой платформе» при попытке установить пакет Tensorflow на шаге 10. Например, у меня на компьютере установлены python 2.7 и python 3.7.

Шаг 2. Купите графический процессор

Что ж, если вы хотите настроить Tensorflow на своем графическом процессоре, вам сначала понадобится графический процессор. Это самый дорогой, но самый простой шаг. Убедитесь, что ваш графический процессор NVIDIA будет поддерживать CUDA с вычислительной мощностью 3.5 или выше (см. Это). Например, у меня есть NVIDIA GEFORCE RTX 2080 Ti. Все нижеследующее предполагает, что у вас есть графический процессор NVIDIA.

Шаг 3. Установите драйверы для вашего графического процессора.

Я использовал https://www.geforce.com/drivers для установки своих драйверов. Например, версия моего драйвера - 431.60. Вы можете проверить версию своего драйвера, щелкнув правой кнопкой мыши по экрану на рабочем столе и выбрав Панель управления NVIDIA.

Шаг 4. Найдите совместимую четверку (версия Tensorflow, версия CUDA, версия cuDNN, версия Python) для вашего случая.

Это был действительно самый трудный шаг. Я не знал, что это так, но я усвоил это на собственном горьком опыте. Дело в том, чтобы настроить Tensorflow-GPU на вашем компьютере, вам нужны CUDA и cuDNN, и вы не можете просто установить любую произвольную версию Tensorflow на свой компьютер или загрузить / установить любую случайную версию CUDA / cuDNN с веб-сайта. Эти четыре компонента (версия Tensorflow, версия CUDA, версия cuDNN, версия Python) должны быть совместимы. Для этого есть ВЕЛИКОЛЕПНОЕ репозиторий на github (лучше, чем документация по Tensorflow или любая другая найденная мною документация, я назову ее «БОЛЬШОЙ репозиторий на github»):

В этом репо есть все подробности, которые вам нужны для этого шага (и шага 8). Просто прокрутите вниз и найдите свой четверной :) Например, я выбрал следующие настройки:

  • Tensorflow 1.13.1
  • CUDA: 10.1.105_418.96
  • cuDNN: 7.5.0.56
  • Python 3.7

Шаг 5. Загрузите Visual Studio Express

Честно говоря, я не уверен, насколько этот шаг важен или даже необходим (похоже, по словам доктора Джоанн Китсон). Так что скачайте Visual Studio Express отсюда. Например, на момент написания я загрузил последнюю версию Visual Studio Express 2019.

Шаг 6. Загрузите и установите CUDA.

Согласно шагу 4, скачайте нужную вам версию CUDA отсюда. Если вам не нужна последняя версия, перейдите в Устаревшие версии. Затем вам нужно установить CUDA, это очень просто. Просто убедитесь, что запомнили путь установки, так как он вам нужен для шага 6. Скажите, что ваш путь CUDA - PATH / TO / CUDA. Например, в моем случае это было C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.1.

Шаг 7. Загрузите cuDNN и скопируйте файлы в папку CUDA.

Согласно шагу 4 скачайте нужную вам версию cuDNN отсюда. Теперь вы скачали zip-файл, просто распакуйте его; Я называю эту папку cuDNN / CUDA, чтобы отличаться от PATH / TO / CUDA. Затем нам нужно скопировать 3 файла в путь установки CUDA из шага 5:

  • Скопируйте cuDNN / CUDA / bin / cudnn64_7.dll в PATH / TO / CUDA / bin
  • Скопируйте cuDNN / CUDA / include / cudnn.h в PATH / TO / CUDA / include.
  • Скопируйте «cuDNN / CUDA / lib / x64 / cudnn.lib» в «PATH / TO / CUDA / lib / x64»

Шаг 8. Убедитесь, что переменные среды указаны правильно.

Убедитесь, что системные переменные CUDA верны в «Панель управления -› Расширенные настройки системы - ›Переменные среды…» (нижняя половина окна озаглавлена ​​«Системные переменные»). Правильные переменные среды должны выглядеть следующим образом в зависимости от вашей версии CUDA (если не просто добавить их):

  • Переменная: CUDA_PATH Значение: C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.1
  • Переменная: NVCUDASAMPLES_ROOT Значение: C: \ ProgramData \ NVIDIA Corporation \ CUDA Samples \ v10.1
  • Переменная: ПУТЬ одно из значений: C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.1 \ bin
  • Переменная: ПУТЬ одно из значений: C: \ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v10.1 \ libnvvp

Шаг 9. Настройте виртуальную среду для вашего проекта.

Настройте виртуальную среду для своего проекта. Он должен использовать 64-битный питон. Я составил для этого документ:

Допустим, ваша виртуальная среда находится в PATH / TO / VIRTUALENVS / PROJECT для следующих шагов.

Шаг 10. Установите правильную версию пакета Tensorflow в вашу виртуальную среду.

После активации вашей виртуальной среды вы хотите установить Tensorflow. Возможно, pip install Tensorflow-gpu = XXX не сработает (для меня это не сработало). Опять же, мы будем использовать БОЛЬШОЙ репозиторий github на шаге 4, чтобы загрузить соответствующий файл колеса (filename.whl). В этом репозитории на github есть все файлы .whl для всех версий Tensorflow, которые могут вам понадобиться (как CPU, так и GPU). Например, файл .whl, который я использовал, был здесь.

Допустим, файл .whl находится по адресу PATH \ TO \ WHEEL \ filename.whl. Вам просто нужно сделать следующее:

  • Активируйте свою виртуальную среду (читайте здесь). Вы увидите значок (ПРОЕКТ) рядом с командной строкой.
  • Перейдите в папку с файлом .whl:
cd "PATH\TO\WHEEL"
  • Установите файл .whl с помощью pip:
pip install filename.whl

Теперь на вашем компьютере установлен Tensorflow с графическим процессором. если вы не используете 64-битный python, вы получите сообщение об ошибке («колесо не поддерживается на этой платформе»). Представьте, что вы получаете эту ошибку после 10 шагов, включая покупку графического процессора, что было для меня, пока я не обнаружил проблему.

Шаг 11. Убедитесь, что Tensorflow использует графический процессор

Просто запустите следующие команды на Python. Он покажет вашу модель графического процессора, его память, и вы получите ответ:

import tensorflow as tf
import os
os.environ['CUDA_VISIBLE_DEVICES'] = '0' # You need to tell CUDA
# which GPU you'd like to use. if you have one GPU probably your GPU is '0'
with tf.device('/gpu:0'):
    a = tf.constant([1.0, 2.0, 3.0, 4.0], shape=[2, 2], name='a')
    b = tf.constant([4.0, 3.0, 2.0, 1.0], shape=[2, 2], name='b')
    c = tf.matmul(a, b)
with tf.Session() as sess:
    print (sess.run(c))

Надеюсь, это сработает после 10 шагов (10!).

Шаг 12. Найдите минутку, чтобы понять, насколько проще было настроить Tensorflow для ЦП.

Чтобы настроить Tensorflow на вашем ЦП и виртуальной среде, вам понадобятся только следующие шаги (обязательно создайте разные виртуальные среды для версии ЦП и ГП, если вы хотите протестировать и то, и другое):

  • Убедитесь, что на вашем компьютере установлен 64-битный Python.
  • Установите Tensorflow с помощью pip:
pip install tensorflow
  • Если вам нужна собственная версия Tensorflow, используйте следующую команду:
pip install tensorflow==1.3.0

Ссылки, которые помогли мне лучше понять вещи и написать это