토치의 nn.BatchNorm1d

nn.BatchNorm1d시퀀스 또는 시계열과 같은 1D 데이터의 배치 정규화( ) 레이어 PyTorch입니다 .Batch Normalization

배치 정규화는 신경망에 일반적으로 사용되는 정규화 기술로, 훈련 프로세스 속도를 높이고 모델의 수렴 및 안정성을 향상시키는 것을 목표로 합니다. 각 입력 미니 배치의 특징을 정규화하여 입력 데이터의 분포를 정규화합니다.

1D 데이터에서 nn.BatchNorm1d레이어를 때 각 기능 차원을 따라 데이터를 정규화합니다. 특히, 각 기능 차원의 평균과 분산을 계산하고 입력 데이터를 중앙에 배치하고 크기를 조정하여 해당 분포가 평균과 분산이 있는 표준 정규 분포에 근접하도록 합니다 0.1

nn.BatchNorm1d레이어를 사용하면 신경망 훈련 중에 발생하는 내부 공변량 이동 문제를 효과적으로 해결하고 훈련 수렴 속도를 높이며 모델의 일반화 능력을 향상시킬 수 있습니다.

다음은 nn.BatchNorm1d레이어 .

import torch
import torch.nn as nn

# 定义一个简单的神经网络模型
class MyModel(nn.Module):
    def __init__(self):
        super(MyModel, self).__init__()
        self.fc1 = nn.Linear(10, 20)
        self.bn = nn.BatchNorm1d(20)
        self.fc2 = nn.Linear(20, 10)

    def forward(self, x):
        x = self.fc1(x)
        x = self.bn(x)
        x = torch.relu(x)
        x = self.fc2(x)
        return x

# 创建模型实例
model = MyModel()

# 随机生成输入数据
input_tensor = torch.randn(32, 10)

# 前向传播
output_tensor = model(input_tensor)

MyModel이 예에서는 선형 계층, nn.BatchNorm1d계층 간단한 신경망 모델을 정의합니다 . 모델의 순방향 전파 과정에서 입력 데이터는 먼저 선형 계층을 통과한 fc1다음 배치 정규화 nn.BatchNorm1d계층을 다음 ReLU비선형 변환을 위해 활성화 함수를 사용하고 마지막으로 선형 계층을 통과하여 출력을 fc2얻습니다 .

Supongo que te gusta

Origin blog.csdn.net/AdamCY888/article/details/131270585
Recomendado
Clasificación