Где применять нормализацию партии - PullRequest
0 голосов
/ 30 ноября 2018

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

def function(self, data):
    hidden_layer = F.relu((self.layer1(data)))
    pred = self.pred(hidden_layer)
    pred = self.softmax(pred)
    return pred

Лучше всего предположить, что она должна идти на скрытом слое, как self.batch_norm(hidden_layer).Входные данные уже масштабируются с использованием X = StandardScaler().fit_transform(X)

1 Ответ

0 голосов
/ 30 ноября 2018

Это простая менмоника ... как только ваши данные пройдут через любой слой, они больше не будут в своем первоначальном виде - и, самое главное, они больше не будут в batch .

Единственное место, которое у вас есть для эффективной нормы партии, это непосредственно перед входом в первый скрытый слой.

Во многих (большинстве?) реализациях наблюдения запартия проходит по слоям последовательно, по одному за раз;результаты накапливаются на последнем слое.«Пакет» в данном случае относится в большей степени к этапу создания подпорки: мы откладываем подпорку до тех пор, пока не запустим все наблюдения в пакете, а затем обновим в среднем для пакета.

Для любого интерфейса слоя, можно нейтрализовать исчезновение или взрыв веса с помощью нормализации - это может вас смущать.Тем не менее, обычно лучше (1) не держать пальцы там, пока вы не поймете, что вам нужно;(2) сделать это как часть обратного распространения - снова введя «пакетную» синхронизацию.

...