PyTorch BatchNorm1D, 2D, 3D и TensorFlow / Keras BatchNormalization

#tensorflow #keras #pytorch

#тензорный поток #keras #pytorch

Вопрос:

Я хочу использовать BatchNorm1D как в PyTorch в TensorFlow. Я заметил, что BatchNormalization() в TF есть axis=-1 значение по умолчанию. Какая ось правильная, BatchNorm1D, BatchNorm2D, BatchNorm3D как в PyTorch?

Ответ №1:

Это зависит от вашего порядка размеров.

Pytorch выполняет свои пакетные нормы над axis = 1. Но он также имеет тензоры с axis = 1 в качестве каналов для свертки.

Tensorflow имеет каналы на последней оси в свертке. Таким образом, его batchnorm помещает их в axis =-1.

В большинстве случаев вы должны быть в безопасности с настройкой по умолчанию.