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

OSCHINA-MIRROR/UDCS-WeaveAI

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 3.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 17:17 d007aad

WeaveNet

Авторские права: Beijing Zhitian Zhiwei Meteorological Technology Co., Ltd.

Введение

WeaveNet — это фреймворк для вычислительных графов на C#, предназначенный для работы с нейронными сетями. Он включает примеры использования CNN, BP, FCN, LSTM, ConvLSTM и GRU. Фреймворк совместим с PyTorch.

Архитектура программного обеспечения

Архитектура полностью написана на C#. Она позволяет увидеть внутреннюю реализацию любых деталей и включает примеры использования различных функций, а также данные, используемые в этих примерах.

Все функции находятся в процессе разработки или уже завершены. Мы приглашаем вас присоединиться к этому проекту. Вы можете связаться со мной через QQ-группу 17375149, QQ 20573886 или по электронной почте xingyu900@live.com.

Инструкция по использованию

  1. Поддержка LOSS: MESLOSS, cross-entropy.
  2. Поддержка функций активации: ReLu, Tanh, Sigmod, Softmax.
  3. Поддержка типов данных: float[][] и float[][][,], двумерные и четырёхмерные.
  4. Поддержка пулинга: средний пулинг, максимальный пулинг.
  5. Другая поддержка: ConvLayer, Conv2DLayer, MulLayer, ConvTranspose2DLayer.

Пример кода BP

// Объявляем два ConvLayer и одну функцию активации SigmodLayer
ConvLayer cl1 = new ConvLayer(13, 5, true);
SigmodLayer sl = new SigmodLayer();
float lr = 0.5f;
ConvLayer cl2 = new ConvLayer(5, 1, true);

int i = 0, a = 0;
while (a < 5000) {
    dynamic ff = cl1.Forward(x);
    ff = sl.Forward(ff);
    ff = cl2.Forward(ff);

    // Вычисляем ошибку
    MSELoss mloss = new MSELoss();
    var loss = mloss.Forward(ff, y);

    Console.WriteLine("Ошибка:" + loss);

    dynamic grid = mloss.Backward();

    // Обратное распространение w2
    dynamic w22 = cl2.backweight(grid);

    // Обратное распространение W1
    dynamic grid1 = cl2.backward(grid);
    grid1 = sl.Backward(grid1);
    dynamic w11 = cl1.backweight(grid1);

   // Обновляем параметры
   cl2.weights = Matrix.MatrixSub(cl2.weights, Matrix.multiply(w22.grid, lr));
   cl2.basicData = Matrix.MatrixSub(cl2.basicData, Matrix.multiply(w22.basic, lr));

   cl1.weights = Matrix.MatrixSub(cl1.weights, Matrix.multiply(w11.grid, lr));
   cl1.basicData = Matrix.MatrixSub(cl1.basicData, Matrix.multiply(w11.basic, lr));
   i++;
   a++;
}

График работы сети BP

BP сеть

CNN сеть с 95% точностью распознавания

Описание изображения

Сеть LSTM для прогнозирования качества воздуха PM2.5

Сеть LSTM

Опубликовать ( 0 )

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

1
https://api.gitlife.ru/oschina-mirror/UDCS-WeaveAI.git
git@api.gitlife.ru:oschina-mirror/UDCS-WeaveAI.git
oschina-mirror
UDCS-WeaveAI
UDCS-WeaveAI
master