Би било честно да се каже, че машинното обучение е по-достъпно от всякога, със сравнително скромен хардуер и пропускане на докторантурата вече можете да създавате и обучавате свои собствени модели или да използвате предварително обучени модели. Не мога обаче да кажа, че винаги е ясно; това все още е нововъзникваща област с бързо напредващи разработки, инструменти, набори от инструменти и SDK.
Настройването на вашата среда изисква време и грижи, пълно е с клопки и едно пропускане на номер на версия, което води до часове на разочарование, чудейки се къде е изчезнал липсващият dll или гледайки вашата великолепна нова Ampere карта, която стои бездействаща, докато вашият процесор отоплява къщата !
Това ръководство ще ви преведе през стартирането и стартирането на TensorFlow 2.4 с поддръжка на CUDA, за да извлечете максимума от вашия GPU.
https://www.tensorflow.org/tutorials/images/classification
Урокът за класификация на изображения на TensorFlow е чудесен начин да подчертаете разликата, която прави използването на вашия графичен процесор пред само вашия процесор. Когато следвате урока, ще стигнете до точката, в която стартирате своя модел, ето накратко.
Epoch 1/5 92/92 [==============================] - 21s 231ms/step Epoch 2/5 92/92 [==============================] - 23s 251ms/step Epoch 3/5 92/92 [==============================] - 24s 262ms/step Epoch 4/5 92/92 [==============================] - 21s 232ms/step Epoch 5/5 92/92 [==============================] - 22s 243ms/step
Около 21–24 секунди за всяка епоха, не е ужасно, но това няма да се мащабира добре, когато започнем да използваме по-сложни модели и по-големи набори от данни. На изображението по-долу можете да видите, че Tensorflow изпълнява всичко това на CPU и не използва GPU.
Сега, изпълнявайки същия код с активирана поддръжка на CUDA, картината е много различна, обучението сега се изпълнява с около 1 секунда на епоха.
Epoch 1/5 92/92 [==============================] - 1s 15ms/step Epoch 2/5 92/92 [==============================] - 1s 15ms/step Epoch 3/5 92/92 [==============================] - 1s 15ms/step Epoch 4/5 92/92 [==============================] - 1s 15ms/step Epoch 5/5 92/92 [==============================] - 1s 15ms/step
И можете да видите, че дори не сме увеличили GPU и използваме значително по-малко CPU. Не заснех използването на паметта на GPU, но надникна някъде около 66%.
Tensorflow изисквания
Според уебсайта TensorFlow неговите изисквания са както следва:
- Nvidia GPU драйвер — 450.x или по-висока
- CUDA Toolkit — CUDA 11
- cuDNN SDK 8.0.4
- Python 3.5–3.8
Забележка! Не поддържа Python 3.9. Понижете базовия си питон, ако е необходимо, или използвайте нещо като Conda, за да създадете среда с 3.8
Ето набора от версии, които използвах и постигнах успех:
- Gigabyte Aorus 3070 GPU
- Nvidia GPU драйвер 461.09
- CUDA Toolkit 11.0.3
- cuDNN 8.0.4.30
- Python 3.8.5
Опитах различни комбинации от по-нови драйвери; това обаче е единствената комбинация, която успях да направя до момента, ако сте имали успех с други комбинации, уведомете ме и аз ще актуализирам тази история.
Две важни бележки, избягвайте GPU драйвер 460, има известни проблеми и TensorFlow все още не поддържа Python 3.9
Инсталирайте/актуализирайте своя графичен драйвер
https://www.nvidia.com/Download/index.aspx
CUDA Toolkit ще се предлага с пакетен драйвер, но може да има няколко версии след това, най-вероятно вече имате инсталиран драйвер. Графичните драйвери на Nvidia се доставят с много надеждни ръководени инсталатори.
Инсталирайте CUDA Toolkit
https://developer.nvidia.com/cuda-toolkit-archive
Инструментариумът CUDA включва инструментите, необходими за GPU-ускорени приложения и разработка. Това е първата част, необходима за активиране на GPU ускорение в Tensorflow.
Можете да изтеглите или локалния инсталатор (2,8 GB), който е удобен, ако възнамерявате да извършите няколко инсталации (или преинсталирания), или мрежовия инсталатор, който ще изтегли само частите, които искате да инсталирате. Локалният инсталатор включва графичен драйвер, PhysXdriver и всичко останало, от което може да се нуждаете.
Избрах персонализираната инсталация и премахнах избора на драйвера за дисплея и PhysX драйвера, тъй като вече имам инсталирани еквивалентни или по-добри драйвери.
Нямам инсталирано Visual Studio и нямате нужда от него, за да активирате поддръжката на CUDA в TensorFlow. Имаме нужда от библиотеки и изпълними файлове.
След като инсталацията приключи, проверете дали всичко работи добре. Помислете дали да рестартирате машината си в този момент или поне да отворите нов команден прозорец. Въведете nvcc -V и трябва да видите следното.
C:\>nvcc -V nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2020 NVIDIA Corporation Built on Wed_Jul_22_19:09:35_Pacific_Daylight_Time_2020 Cuda compilation tools, release 11.0, V11.0.221 Build cuda_11.0_bu.relgpu_drvr445TC445_37.28845127_0
Ако това не успее, рестартирайте машината си и проверете PATH (напишете PATH в команден прозорец или прегледайте Променливи на средата в Windows Advanced System Settings)
Вашият системен ПЪТ трябва да съдържа:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\libnvvp
Инсталирайте cuDNN SDK
CUDA Deep Neural Network (cuDNN) SDK предоставя библиотека от примитиви за дълбоки невронни мрежи и осигурява реализации на слоеве за навиване, обединяване, нормализиране и активиране.
Ще трябва да се регистрирате в програмата за разработчици на Nvidia и да приемете лицензионното споразумение за софтуер cuDNN, преди да изтеглите.
https://developer.nvidia.com/rdp/cudnn-archive
Не изтегляйте най-новия пакет! Трябва да щракнете върху Архивирани версии на cuDNN и да изберете правилната версия в този случай cuDNN v8.0.4 за CUDA 11.0. Накрая изберете правилната връзка за вашата платформа.
cuDNN не идва с удобен инсталатор, така че ще трябва ръчно да извлечете zip файла и да копирате съдържанието в правилните папки.
- Копирайте ‹zipfile›\cuda\bin\cudnn*.dll в C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\bin
- Копирайте ‹zipfile›\cuda\include\cudnn*.h в C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\include
- Копирайте ‹zipfile›\cuda\lib\x64\cudnn*.lib в C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.0\lib\x64
Може да бъдете помолени да копирате до тази дестинация, ако това е чиста инсталация, няма да бъдете помолени да презапишете никакви файлове. Ако бъдете помолени да презапишете файлове, може би е най-добре да премахнете напълно CUDA и cuDNN и да започнете отначало с нова инсталация.
Вече сте готови!
Тествам го.
Нека направим бърз тест, за да видим дали всичко работи добре. Стартирайте нов команден прозорец, стартирайте вашата среда на python и стартирайте бележник на Jupyter или изпълнете следния код в избраната от вас IDE.
import tensorflow as tf tf.config.list_physical_devices('GPU')
Ако успеем, ще видим списък с поне един GPU.
Ако върне празен списък, опитайте следното за отстраняване на проблема.
- Уверете се, че вашият PATH е правилен и сочи към правилния инструментариум CUDA
- Рестартирайте вашата машина
- Проверете дали сте инсталирали правилните версии.
- Почистете и опитайте отново
Премахване на по-стара/предишна версия
За да направите чиста инсталация на по-стара версия, изтрийте папката под C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA и не забравяйте да почистите вашия PATH.
Ако ви е удобно да редактирате PATH, можете да поддържате множество версии, уверете се, че вашият PATH се отнася до версията, която искате да използвате, и само една версия.
Свършен
Надявам се, че това ви помага и ви позволява да стигнете до забавните неща на TensorFlow, спестявайки ви цялото време, което отделих, за да заработи това. Искам да чуя как се справяте и да ме уведомите за вашите въпроси, ако имате такива.
Приписвания
TensorFlow, логото на TensorFlow и всички свързани марки са търговски марки на Google Inc.
© 2021 NVIDIA Corporation, NVIDIA, логото на NVIDIA, CUDA са търговски марки и/или регистрирани търговски марки на NVIDIA Corporation в Съединените щати и други държави. Всички права запазени.