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.
Пример кода 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
CNN сеть с 95% точностью распознавания
Сеть LSTM для прогнозирования качества воздуха PM2.5
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )