каков первый инициализированный вес в свёрточном слое питора - PullRequest
0 голосов
/ 31 декабря 2018

Я занимаюсь самообучением в Udacity PyTorch Относительно последнего абзаца

Обучение

В коде, с которым вы работали, вы 'Мы явно устанавливали значения весов фильтра, но нейронные сети на самом деле узнают лучшие весы фильтра, когда они обучаются на наборе данных изображения.Вы узнаете все об этом типе нейронной сети позже в этом разделе, но знаете, что фильтры верхних и нижних частот определяют поведение такой сети, и вы знаете, как их кодировать с нуля!

На практике вы также обнаружите, что многие нейронные сети учатся распознавать края изображений, потому что края объекта содержат ценную информацию о форме объекта.

Я изучална протяжении последних 44-х секций.Но я не смог ответить на следующие вопросы

  1. Каков начальный вес, когда я делаю torch.nn.Conv2d?И как это определить самому?
  2. Как PyTorch обновляет веса в сверточном слое?

1 Ответ

0 голосов
/ 01 января 2019

Когда вы объявили nn.Conv2d, веса инициализируются с помощью этого кода .

В частности, если вы задаете смещение, он использует инициализацию, предложенную Kaiming et.al.Он инициализируется как равномерное распределение между (-bound, bound), где bound=\sqrt{6/((1+a^2)fan_in)} (см. здесь ).

Вы также можете инициализировать вес вручную.На этот вопрос ответили в другом месте (см. здесь ), и я не буду повторять это.

Когда вы звоните optimizer.step и оптимизатор зарегистрировал параметры сверточного фильтра, они обновляются.

...