README.md 3.68 KB
Newer Older
AESmolina's avatar
AESmolina committed
1
Поскольку нейронные сети состоят из слоев, каждый из которых умеет выполнять вычисления на входах в "прямом" направлении и  распрострянять градиенты в "обратном"  направлении,то библиотека включает в себя основной класс слоя class Layer и наследуемые от него:
AESmolina's avatar
AESmolina committed
2
3
4
5
6
7
8
9
- Sigmoid - слой применяющий сигмоиду, как функцию активации 
- Relu - слой применяющий функцию активации ReLU
- Tanh - слой применяющий гиперболический тангенс, как функцию активации 
- Linear - слой осуществляющий генерацию весов и смещения нейронов, пропускание входного вектора через слой и обратного распространения. 
- Sequential - слой состоящий из последовательности других слоев.

Class Loss - класс вычисляющий потери и градиенты.
Вычисление осуществляется следующими методами:
AESmolina's avatar
AESmolina committed
10
11
12
- SSE - функция потери, которая вычисляет сумму квадратов ошибок.
- SoftmaxCrossEntropy - перекрестная энтропия 

AESmolina's avatar
AESmolina committed
13
14
15
16
17
18
19
20
21

Class Optimizer - производит обновление весов слоя методом градиентного спуска GradientDescent

Для удобства также были реализованы вспомогательные функции apply_func, combine_apply_func  применяющие функции поэлементно. 

С использованием реализованной библиотеки была обучена нейронная сеть, решающая задачу FizzBuzz.
Необходимо напечатать числа от 1 до 100, за исключением того, что если чисо делится на 3, то печатать Fizz
если число делится на 5, то напечатать buzz и если делится на 15, то напечатать FizzBuzz.

AESmolina's avatar
AESmolina committed
22
Один из возможных результатов работы нейронной сети:
AESmolina's avatar
AESmolina committed
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
- 1 1 1
- 2 2 2
- 3 fizz fizz
- 4 4 4
- 5 buzz buzz
- 6 fizz fizz
- 7 7 7
- 8 8 8
- 9 fizz fizz
- 10 10 buzz
- 11 11 11
- 12 fizz fizz
- 13 fizz 13
- 14 14 14
- 15 fizzbuzz fizzbuzz
- 16 16 16
- 17 17 17
- 18 fizz fizz
- 19 19 19
- 20 buzz buzz
- 21 fizz fizz
- 22 22 22
- 23 23 23
- 24 fizz fizz
- 25 buzz buzz
- 26 26 26
- 27 fizz fizz
- 28 28 28
- 29 29 29
- 30 fizzbuzz fizzbuzz
- 31 31 31
- 32 32 32
- 33 fizz fizz
- 34 34 34
- 35 buzz buzz
- 36 fizz fizz
- 37 37 37
- 38 38 38
- 39 fizz fizz
- 40 40 buzz
- 41 41 41
- 42 fizz fizz
- 43 43 43
- 44 44 44
- 45 fizzbuzz fizzbuzz
- 46 46 46
- 47 47 47
- 48 fizz fizz
- 49 49 49
- 50 buzz buzz
- 51 fizz fizz
- 52 52 52
- 53 53 53
- 54 fizz fizz
- 55 buzz buzz
- 56 56 56
- 57 fizz fizz
- 58 58 58
- 59 59 59
- 60 fizzbuzz fizzbuzz
- 61 61 61
- 62 62 62
- 63 fizz fizz
- 64 64 64
- 65 buzz buzz
- 66 fizz fizz
- 67 67 67
- 68 buzz 68
- 69 fizz fizz
- 70 70 buzz
- 71 71 71
- 72 fizz fizz
- 73 73 73
- 74 74 74
- 75 fizzbuzz fizzbuzz
- 76 buzz 76
- 77 77 77
- 78 fizz fizz
- 79 79 79
- 80 buzz buzz
- 81 fizz fizz
- 82 82 82
- 83 83 83
- 84 fizz fizz
- 85 buzz buzz
- 86 86 86
- 87 fizz fizz
- 88 88 88
- 89 89 89
- 90 fizzbuzz fizzbuzz
- 91 91 91
- 92 92 92
- 93 fizz fizz
- 94 94 94
- 95 buzz buzz
- 96 fizz fizz
- 97 97 97
- 98 98 98
- 99 fizz fizz
- 100 buzz buzz