PyTorch. Освещая глубокое обучение [Эли Стивенс] (pdf) читать постранично, страница - 2

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

32
Об авторах . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Об иллюстрации на обложке . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

Часть I
Основы PyTorch
Глава 1. Знакомство с глубоким обучением и библиотекой PyTorch . . . . . . 36
1.1. Революция глубокого обучения . . . . . . . . . . . . . . . . . . . . . . . . 37
1.2. Использование PyTorch для глубокого обучения . . . . . . . . . . . . . 39

8  Оглавление
1.3. Почему PyTorch? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1.3.1. Общая картина сферы глубокого обучения . . . . . . . . . . . . . 42
1.4. Обзор средств поддержки библиотекой PyTorch проектов .
глубокого обучения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
1.5. Аппаратные и программные требования . . . . . . . . . . . . . . . . . . . 48
1.5.1. Блокноты Jupyter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
1.6. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
1.7. Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Глава 2. Предобученные сети . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
2.1. Предобученные сети для распознавания тематики .
изображения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.1.1. Получение предобученной сети для распознавания .
изображений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.1.2. AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.1.3. ResNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
2.1.4. На старт, внимание, почти что марш . . . . . . . . . . . . . . . . . 59
2.1.5. Марш! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
2.2. Предобученная модель, создающая все лучшие подделки . . . . . . . . 64
2.2.1. Игра GAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
2.2.2. CycleGAN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
2.2.3. Сеть, превращающая лошадей в зебр . . . . . . . . . . . . . . . . . 68
2.3. Предобученная сеть для описания обстановки . . . . . . . . . . . . . . . 72
2.3.1. NeuralTalk2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
2.4. Torch Hub . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
2.5. Итоги главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.6. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
2.7. Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Глава 3. В начале был тензор... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.1. Мир как числа с плавающей запятой . . . . . . . . . . . . . . . . . . . . . 79
3.2. Тензоры: многомерные массивы . . . . . . . . . . . . . . . . . . . . . . . . 81
3.2.1. От списков Python к тензорам PyTorch . . . . . . . . . . . . . . . . 81
3.2.2. Создаем наши первые тензоры . . . . . . . . . . . . . . . . . . . . . 82
3.2.3. Что такое тензоры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Оглавление  9
3.3. Доступ к тензорам по индексам . . . . . . . . . . . . . . . . . . . . . . . . 86
3.4. Поименованные тензоры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.5. Типы элементов тензоров . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.5.1. Задание числового типа с помощью dtype . . . . . . . . . . . . . . 91
3.5.2. dtype на все случаи жизни . . . . . . . . . . . . . . . . . . . . . . . . 91
3.5.3. Работа с атрибутом dtype тензоров . . . . . . . . . . . . . . . . . . 92
3.6. API тензоров . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.7. Тензоры: хранение в памяти . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.7.1. Доступ к хранилищу по индексу . . . . . . . . . . . . . . . . . . . . 95
3.7.2. Модификация хранимых значений: операции с заменой .
на месте . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
3.8. Метаданные тензоров: размер, сдвиг и шаг . . . . . . . . . . . . . . . . . 97
3.8.1. Представления хранилища другого тензора . . . . . . . . . . . . . 97
3.8.2. Транспонирование без копирования . . . . . . . . . . . . . . . . 100
3.8.3. Транспонирование при более высокой размерности . . . . . . . 101
3.8.4. Непрерывные тензоры . . . . . . . . . . . . . . . . . . . . . . . . . 102
3.9. Перенос тензоров на GPU . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
3.9.1. Работа с атрибутом device тензоров . . . . . . . . . . . . . . . . . 105
3.10. Совместимость с NumPy . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
3.11. Обобщенные тензоры тоже тензоры . . . . . . . . . . . . . . . . . . . . 107
3.12. Сериализация тензоров . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
3.12.1. Сериализация в HDF5 с помощью h5py . . . . . . . . . . . . . 109
3.13. Итоги главы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
3.14. Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
3.15. Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Глава 4. Представление реальных данных с помощью тензоров . . . . . . . . 112
4.1. Работа с изображениями . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
4.1.1. Добавление цветовых каналов . . . . . . . . . . . . . . . . . . . . 114
4.1.2. Загрузка файла изображения . . . . . . . . . . . . . . . . . . . . .