密集

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。
@frozen
public struct Dense<Scalar> : Layer where Scalar : TensorFlowFloatingPoint

密に接続されたニューラルネットワーク層。

Dense実装は、操作activation(matmul(input, weight) + bias)weight重み行列では、 bias 、バイアスベクトルであり、 activation要素ごと活性化関数です。

この層は、2Dバイアス行列を使用した3Dウェイトテンソルもサポートします。この場合、両方の最初の寸法は、第一の寸法と位置合わせされるバッチサイズとして扱われるinputとのバッチバリアントmatmul(_:_:)操作は、このように各要素に対して異なる重みとバイアスを使用して、使用されています入力バッチで。

  • 重み行列。

    宣言

    public var weight: Tensor<Scalar>
  • バイアスベクトル。

    宣言

    public var bias: Tensor<Scalar>
  • 要素ごとの活性化関数。

    宣言

    @noDerivative
    public let activation: Activation
  • 要素ごとの活性化関数タイプ。

    宣言

    public typealias Activation = @differentiable (Tensor<Scalar>) -> Tensor<Scalar>
  • 指定された重み、オプションのバイアス、およびアクティブ化関数からインスタンスを作成します。

    ノート

    現在、 weight唯一の微分パラメータです。 bias後に微分パラメータを行うことができるOptional条件付きに準拠Differentiable TF-499:。

    宣言

    @differentiable(wrt: weight)
    public init(
      weight: Tensor<Scalar>,
      bias: Tensor<Scalar>? = nil,
      activation: @escaping Activation
    )
  • 指定された入力にレイヤーを適用して得られた出力を返します。

    宣言

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

    パラメーター

    input

    レイヤーへの入力。

    戻り値

    出力。

  • 作成Dense指定入力サイズ、出力サイズ、及び要素毎活性化機能を有する層です。重み行列の形状で作成された[inputSize, outputSize]及びバイアスベクトルは、形状で作成された[outputSize]

    宣言

    public init(
      inputSize: Int,
      outputSize: Int,
      activation: @escaping Activation = identity,
      useBias: Bool = true,
      weightInitializer: ParameterInitializer<Scalar> = glorotUniform(),
      biasInitializer: ParameterInitializer<Scalar> = zeros()
    )

    パラメーター

    inputSize

    入力空間の次元。

    outputSize

    出力空間の次元。

    activation

    使用する活性化関数。デフォルト値はidentity(_:)

    weightInitializer

    初期化子が使用するweight

    biasInitializer

    初期化子が使用するbias