50
правок
Изменения
новый пример для Xavier
Этот способ инициализации хорошо подойдет для симметричных относительно нуля функций активации (гиперболический тангенс, сигмоид), для ReLU<ref>[https://en.wikipedia.org/wiki/Rectifier_(neural_networks) ReLU, Wikipedia]</ref> данный способ не подходит.
====Пример инициализации Xavier на языке Pythonс библиотекой PyTorch====
<font color=darkgreen># example of the normalized xavier weight initializationинициализация параметров одного слоя</font> from math import sqrt from numpy import mean from numpyconv1 = torch.nn.random import rand <font color=darkgreen># number of nodes in the previous layer</font> n = 10 <font color=darkgreen># number of nodes in the next layer</font> m = 20 <font color=darkgreen># calculate the range for the weights</font> lower, upper = -Conv2d(sqrt(6.0) / sqrt(n + m)), (sqrt(6.0) / sqrt(n + m).) <font color=darkgreen># generate random numbers</font> numbers = randtorch.nn.init.xavier_uniform(1000) <font color=darkgreen># scale to the desired range</font> scaled = lower + numbers * (upper - lowerconv1.weight)
===Метод инициализации He<ref>[https://arxiv.org/pdf/1502.01852.pdf Delving deep into rectifiers: Surpassing human-level performance on ImageNet classification ]</ref>===