バッチノルム

@frozen
public struct BatchNorm<Scalar> : Layer where Scalar : TensorFlowFloatingPoint

バッチ正規化レイヤー。

各バッチで前の層のアクティベーションを正規化します。つまり、平均アクティベーションを0に近く、アクティベーションの標準偏差を1に近く維持する変換を適用します。

参照:バッチ正規化: 内部共変量シフトを低減することによるディープ ネットワーク トレーニングの加速

  • 機能のディメンション。

    宣言

    @noDerivative
    public let axis: Int
  • 移動平均と移動分散の勢い。

    宣言

    @noDerivative
    public let momentum: Scalar
  • ベータとも呼ばれるオフセット値。

    宣言

    public var offset: Tensor<Scalar>
  • ガンマとも呼ばれるスケール値。

    宣言

    public var scale: Tensor<Scalar>
  • 分散イプシロン値。

    宣言

    @noDerivative
    public let epsilon: Scalar
  • 実行平均値。

    宣言

    @noDerivative
    public var runningMean: Parameter<Scalar>
  • 実行中の差異。

    宣言

    @noDerivative
    public var runningVariance: Parameter<Scalar>
  • バッチ正規化レイヤーを作成します。

    宣言

    public init(
      axis: Int,
      momentum: Scalar,
      offset: Tensor<Scalar>,
      scale: Tensor<Scalar>,
      epsilon: Scalar,
      runningMean: Tensor<Scalar>,
      runningVariance: Tensor<Scalar>
    )

    パラメータ

    axis

    正規化すべきではない軸 (通常はフィーチャー軸)。

    momentum

    移動平均の勢い。

    offset

    正規化されたテンソルに追加されるオフセット。

    scale

    正規化されたテンソルを乗算するスケール。

    epsilon

    数値の安定性を向上させるために、分母に小さなスカラーが追加されました。

    runningMean

    実行平均値。

    runningVariance

    実行中の差異。

  • 指定された入力にレイヤーを適用して得られた出力を返します。

    宣言

    @differentiable
    public func forward(_ input: Tensor<Scalar>) -> Tensor<Scalar>

    パラメータ

    input

    レイヤーへの入力。

    戻り値

    出力。

  • バッチ正規化レイヤーを作成します。

    宣言

    public init(
      featureCount: Int,
      axis: Int = -1,
      momentum: Scalar = 0.99,
      epsilon: Scalar = 0.001
    )

    パラメータ

    featureCount

    特徴の数。

    axis

    正規化する必要がある軸 (通常はフィーチャー軸)。

    momentum

    移動平均の勢い。

    epsilon

    数値の安定性を向上させるために、分母に小さなスカラーが追加されました。