グループノルム

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

入力のミニバッチにグループ正規化を適用するレイヤー。

参照:グループの正規化

  • ベータとも呼ばれるオフセット値。

    宣言

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

    宣言

    public var scale: Tensor<Scalar>
  • グループの数。

    宣言

    @noDerivative
    public let groupCount: Int
  • 特徴が存在する軸。

    宣言

    @noDerivative
    public let axis: Int
  • 分散イプシロン値。

    宣言

    @noDerivative
    public let epsilon: Scalar
  • グループ正規化レイヤーを作成します。

    前提条件

    軸をバッチ軸にすることはできません。

    前提条件

    オフセットはランク 1 でなければなりません。

    前提条件

    オフセットの要素の数はグループで割り切れる必要があります。

    前提条件

    オフセットとスケールは同じ形状でなければなりません。

    宣言

    public init(
      offset: Tensor<Scalar>,
      scale: Tensor<Scalar>,
      groupCount: Int,
      axis: Int,
      epsilon: Scalar
    )

    パラメーター

    offset

    初期オフセット値。

    scale

    初期スケール値。

    groupCount

    グループの数。

    axis

    特徴が存在する軸。

    epsilon

    分散イプシロン値。

  • グループ正規化レイヤーを作成します。

    前提条件

    軸をバッチ軸にすることはできません。

    前提条件

    特徴量はグループで割り切れる必要があります。

    宣言

    public init(
      featureCount: Int,
      groupCount: Int,
      axis: Int = -1,
      epsilon: Scalar = 1e-3
    )

    パラメーター

    featureCount

    特徴の数。

    groupCount

    グループの数。

    axis

    特徴が存在する軸。デフォルト値は -1 です。

    epsilon

    小さなスカラーが分散に追加されました。デフォルト値は 0.001 です。

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

    前提条件

    軸をバッチ軸にすることはできません。

    前提条件

    入力とオフセットの特徴の数は同じである必要があります。

    宣言

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

    パラメーター

    input

    レイヤーへの入力。

    戻り値

    出力。