我是靠谱客的博主 美丽奇迹,最近开发中收集的这篇文章主要介绍pytorch中BatchNorm1d、BatchNorm2d、BatchNorm3d1.nn.BatchNorm1d(num_features)2.nn.BatchNorm2d(num_features)3.nn.BatchNorm3d(num_features),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  • 1.nn.BatchNorm1d(num_features)
  • 2.nn.BatchNorm2d(num_features)
  • 3.nn.BatchNorm3d(num_features)

1.nn.BatchNorm1d(num_features)

 1.对小批量(mini-batch)2d3d输入进行批标准化(Batch Normalization)操作
    2.num_features:
            来自期望输入的特征数,该期望输入的大小为'batch_size x num_features [x width]'
            意思即输入大小的形状可以是'batch_size x num_features' 和 'batch_size x num_features x width' 都可以。
            (输入输出相同)
            输入Shape:(N, C)或者(N, C, L)
            输出Shape:(N, C)或者(N,C,L)
 
      eps:为保证数值稳定性(分母不能趋近或取0,给分母加上的值。默认为1e-5。
      momentum:动态均值和动态方差所使用的动量。默认为0.1。
      affine:一个布尔值,当设为true,给该层添加可学习的仿射变换参数。
    3.在每一个小批量(mini-batch)数据中,计算输入各个维度的均值和标准差。gamma与beta是可学习的大小为C的参数向量(C为输入大小)
      在训练时,该层计算每次输入的均值与方差,并进行移动平均。移动平均默认的动量值为0.1。
      在验证时,训练求得的均值/方差将用于标准化验证数据。 
    4.例子
            >>> # With Learnable Parameters
            >>> m = nn.BatchNorm1d(100) #num_features指的是randn(20, 100)中(N, C)的第二维C
            >>> # Without Learnable Parameters
            >>> m = nn.BatchNorm1d(100, affine=False)
            >>> input = autograd.Variable(torch.randn(20, 100)) #输入Shape:(N, C)
            >>> output = m(input)  #输出Shape:(N, C)

2.nn.BatchNorm2d(num_features)

 1.对小批量(mini-batch)3d数据组成的4d输入进行批标准化(Batch Normalization)操作
    2.num_features: 
            来自期望输入的特征数,该期望输入的大小为'batch_size x num_features x height x width'
            (输入输出相同)
                输入Shape:(N, C,H, W)
                输出Shape:(N, C, H, W)
      eps: 为保证数值稳定性(分母不能趋近或取0,给分母加上的值。默认为1e-5。
      momentum: 动态均值和动态方差所使用的动量。默认为0.1。
      affine: 一个布尔值,当设为true,给该层添加可学习的仿射变换参数。
    3.在每一个小批量(mini-batch)数据中,计算输入各个维度的均值和标准差。gamma与beta是可学习的大小为C的参数向量(C为输入大小)
      在训练时,该层计算每次输入的均值与方差,并进行移动平均。移动平均默认的动量值为0.1。
      在验证时,训练求得的均值/方差将用于标准化验证数据。
    4.例子
        >>> # With Learnable Parameters
        >>> m = nn.BatchNorm2d(100) #num_features指的是randn(20, 100, 35, 45)中(N, C,H, W)的第二维C
        >>> # Without Learnable Parameters
        >>> m = nn.BatchNorm2d(100, affine=False)
        >>> input = autograd.Variable(torch.randn(20, 100, 35, 45))  #输入Shape:(N, C,H, W)
        >>> output = m(input)

3.nn.BatchNorm3d(num_features)

        1.对小批量(mini-batch)4d数据组成的5d输入进行批标准化(Batch Normalization)操作
        2.num_features: 
                来自期望输入的特征数,该期望输入的大小为'batch_size x num_features x depth x height x width'
                (输入输出相同)
                 输入Shape:(N, C,D, H, W)
                 输出Shape:(N, C, D, H, W)
 
          eps: 为保证数值稳定性(分母不能趋近或取0,给分母加上的值。默认为1e-5。
          momentum: 动态均值和动态方差所使用的动量。默认为0.1。
          affine: 一个布尔值,当设为true,给该层添加可学习的仿射变换参数。
 
        3.在每一个小批量(mini-batch)数据中,计算输入各个维度的均值和标准差。gamma与beta是可学习的大小为C的参数向量(C为输入大小)
          在训练时,该层计算每次输入的均值与方差,并进行移动平均。移动平均默认的动量值为0.1。
          在验证时,训练求得的均值/方差将用于标准化验证数据。
        4.例子
            >>> # With Learnable Parameters
            >>> m = nn.BatchNorm3d(100)  #num_features指的是randn(20, 100, 35, 45, 10)中(N, C, D, H, W)的第二维C
            >>> # Without Learnable Parameters
            >>> m = nn.BatchNorm3d(100, affine=False)  #num_features指的是randn(20, 100, 35, 45, 10)中(N, C, D, H, W)的第二维C
            >>> input = autograd.Variable(torch.randn(20, 100, 35, 45, 10)) #输入Shape:(N, C, D, H, W) 
            >>> output = m(input)

最后

以上就是美丽奇迹为你收集整理的pytorch中BatchNorm1d、BatchNorm2d、BatchNorm3d1.nn.BatchNorm1d(num_features)2.nn.BatchNorm2d(num_features)3.nn.BatchNorm3d(num_features)的全部内容,希望文章能够帮你解决pytorch中BatchNorm1d、BatchNorm2d、BatchNorm3d1.nn.BatchNorm1d(num_features)2.nn.BatchNorm2d(num_features)3.nn.BatchNorm3d(num_features)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部