Введение в построение нейронной сети прямого распространения (Feedforward) |
||||||||||||||||||||||||||||||
МЕНЮ Искусственный интеллект Поиск Регистрация на сайте Помощь проекту ТЕМЫ Новости ИИ Искусственный интеллект Разработка ИИГолосовой помощник Городские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Техническое зрение Чат-боты Авторизация |
2018-02-12 19:46 Данная статья – это основа для практики, благодаря которой вы сможете построить рабочую нейросеть с нуля. Большая часть математических концепций и научных решений мы пропустим. Вы научитесь программировать и создавать нейронную сеть прямого распространения (feedforward neural networks FNN или FF) уже сегодня при помощи PyTorch. Здесь изложена кодовая база jupyter для FNN. FNN: https://github.com/yhuag/neural-network-lab Приступим к работе 1. Убедитесь, что на вашем компьютере установлены PyTorch и Python 3.6; 2. Проверьте корректность установки Python, используя данную команду в консоли: Shell
На выходе должна быть версия Python 3.6.3 или выше. 3. Откройте хранилище (папку) и создайте свой первый файл нейросети: Shell
Начинаем писать код Все изложенные коды должны быть написаны в файле fnn.py Импорт PyTorch Python
Так мы загрузим PyTorch в скрипт. Отлично! Мы уже на полпути. Инициализация Гипер-параметров Гипер-параметры – это мощные аргументы с предварительной настройкой и не будут обновляться в ходе изучения нейронной сети. Python
Загрузка набора данных MNIST MNIST – это огромная база данных с тоннами прописанных чисел (т.е. от 0 до 9), которая направлена на обработку изображений. Python
Загрузка набора данных. После загрузки MNIST, мы загружаем набор данных в наш код: Python
Обратите внимание: мы перемешиваем процесс загрузки train_dataset, чтобы процесс обучения не зависел от порядка данных, однако порядок test_loader остается неизменным, чтобы понять, когда мы можем обработать неопределенный порядок входов. Создаем нейронную сеть Feedforward Сейчас наши наборы данных готовы. Можно приступить к созданию нейронной сети. Можете взглянуть на изображение концепции работы нейросети внизу:
Структура модели нейросети Нейронная сеть включает в себя два полностью соединенных слоя (т.е. fc1 и fc2) и нелинейный слой ReLU между ними. Как правило, мы называем эту структуру 1-скрытый слой нейросети, отбрасывая слой вывода (fc2). Запустив следующий код, указанные изображения (х) могут пройти через нейронную сеть и сгенерировать вывод (out), показывая, как именно соответствие принадлежит каждому из 10 классов. Например, изображение кошки соответствует изображению собаки на 0.8, в то врем я как соответствие изображению самолета – 0.3. Python
Демонстрация нейросети Мы только что создали настоящую нейронную сеть по нашей структуре. Python
Включаем графический процессор (GPU) Обратите внимание: вы можете включить эту строку для запуска кодов на GPU Python
Выбираем функцию потерь и оптимизатор Функция потерь (критерий) выбирает, как выходные данные могут быть сопоставлены с классом. Это определяет, как хорошо или плохо работает нейросеть. Оптимизатор выбирает способ обновления веса, чтобы найти область, в которой будет найден лучшие параметры в конкретной нейросети. Python
Тренируем нейросеть Этот процесс займет примерно 3-5 минут, в зависимости от работоспособности вашего компьютера. Подробные инструкции находятся в комментариях (после #) в следующих примерах. Python
Тестируем модель нейросети Также как и с тренировкой нейронной сети, нам также нужно загрузить пачки тестируемых изображений и собрать выходные данные. Отличия теста от тренировки:
Python
Мы сохраняем тренированную модель как pickle. Таким образом, ее можно будет загрузить и использовать в будущем. Python
Поздравляем! Вы создали вашу первую рабочую нейронную сеть прямого распространения (Feedforward). Что дальше? Сохраняем и закрываем файл. Запускаем файл в консоли: Shell
Процесс тренировки будет выглядеть следующим образом:
Спасибо, что уделили время. Надеюсь, вам понравилась данная статья. Весь код из статьи можно найти на github тут. Данная статья была основана на разработки пользователя Yunjey у которого отличная библиотека примеров. Источник: python-scripts.com Комментарии: |
|||||||||||||||||||||||||||||