1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-lightnet

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

LightNet: универсальная автономная среда для глубокого обучения на основе Matlab

LightNet — это лёгкая, универсальная и полностью основанная на Matlab среда глубокого обучения. Цель разработки — предоставить простую для понимания, использования и эффективную вычислительную платформу для исследований в области глубокого обучения. Реализованная среда поддерживает основные архитектуры глубокого обучения, такие как многослойные перцептроны (MLP), свёрточные нейронные сети (CNN) и рекуррентные нейронные сети (RNN). LightNet поддерживает как CPU, так и GPU для вычислений, переключение между ними осуществляется просто. В качестве экспериментов демонстрируются различные приложения в компьютерном зрении, обработке естественного языка и робототехнике.

Как использовать LightNet

Прочитайте слайды учебника в папке «Документация». Установите последнюю версию Matlab (R2016b или более позднюю) на компьютер и запустите скрипт RunAll.m. Наслаждайтесь! Более подробную информацию можно найти в дополнительных материалах.

Последние обновления

20160528: LightNet поддерживает использование предварительно обученных моделей сетевых моделей ImageNet.

20170217: CUDNN поддерживается установкой Neural Network Toolbox от Mathworks. Обучение свёрточной сети стало более чем в 10 раз быстрее по сравнению с предыдущей версией! Текущая версия может обрабатывать 10 000 изображений CIFAR-10 в секунду во время обучения.

20170924: Добавлен простой пример обучения квази-RNN в LightNet. Квази-RNN гораздо проще распараллелить по сравнению с RNN.

Основные функции в LightNet

  • Связанные с сетью:

    • Main_Template: шаблонный скрипт, используемый для обучения сетей CNN и MLP.
    • TrainingScript: шаблон обучения для сетей CNN и MLP.
    • train_net: запуск сети в режиме обучения для оценки и расчёта потерь и градиентов.
    • test_net: запуск сети в тестовом режиме для оценки текущих параметров.
    • net_ff: реализация процесса прямой передачи данных, который используется в сетях CNN и MLP.
    • net_bp: реализация процесса обратного распространения ошибки, который используется в сетях CNN и MLP.
    • net_init*: инициализация нейронной сети.
  • Слои:

    • linear_layer: реализация линейного слоя (с поддержкой CUDNN).
    • conv_layer_1d: реализация одномерного свёрточного слоя (с поддержкой CUDNN).
    • conv_layer_2d: реализация двумерного свёрточного слоя (с поддержкой CUDNN).
    • maxpool: реализация двумерного слоя максимального пула (с поддержкой CUDNN).
    • maxpool_1d: реализация одномерного слоя максимального пула (с поддержкой CUDNN).
    • bnorm: реализация слоя пакетной нормализации.
    • rmsnorm: реализация функции нормализации RMS.
    • dropout: реализация слоя исключения.
    • lrn: реализация слоя локальной нормализации ответа (с поддержкой CUDNN).
    • softmax: реализация слоя softmax.
  • Функции активации:

    • relu: реализация слоя выпрямленной линейной единицы.
    • leaky_relu: реализация слоя Leaky ReLU.
    • modu: реализация модуля слоя.
    • sigmoid_ln: реализация сигмоидного слоя.
    • tanh_ln: реализация тангенциального слоя.
  • Функции потерь:

    • softmaxlogloss: реализация слоя логарифмических потерь softmax.
  • Оптимизация:

    • sgd: реализация алгоритма стохастического градиентного спуска с импульсом.
    • sgd2: реализация второго порядка алгоритма стохастического градиента с импульсом.
    • adam: реализация алгоритма Adam с модификацией, позволяющей обучение второго порядка.
    • rmsprop: реализация алгоритма RMSProp с модификацией, допускающей обучение второго порядка.
    • adagrad: реализация алгоритма Adagrad с модификацией, допускающей обучение второго порядка.
    • select_learning_rate: реализация алгоритма Selective-SGD, который автоматически выбирает оптимальную скорость обучения в начале или в середине обучения.
  • Вспомогательные функции:

    • generate_output_filename: создание выходного имени файла. На основе текущих настроек параметров.
  • im2col_ln: настраиваемая функция im2col, используемая в слое объединения.

  • unroll_ln: разворачивает перекрывающиеся окна сигналов в матрицу, используется в одномерном слое объединения.

  • pad_data*: слой дополнения, который используется в CNN.

  • SwitchProcessor: функция переключения между CPU и GPU.

Как ускорить LightNet

Для вычисления свёрток и линейных преобразований можно использовать Nvidia CUDNN.

  1. Вам потребуется установить Neural Network Toolbox от Mathworks. Убедитесь, что вы можете правильно его запустить. (См. слайды нашего учебника.)
  2. Установите opts.use_nntoolbox=1 в основном тестовом скрипте.

Литература

  1. Ye, C., Zhao, C., Yang, Y., Fermüller, C., & Aloimonos, Y. (2016, October). LightNet: A Versatile, Standalone Matlab-based Environment for Deep Learning. In Proceedings of the 2016 ACM on Multimedia Conference (pp. 1156–1159). ACM.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-lightnet.git
git@api.gitlife.ru:oschina-mirror/mirrors-lightnet.git
oschina-mirror
mirrors-lightnet
mirrors-lightnet
master