@frozen
public struct Dense<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
高密度に接続されたニューラル ネットワーク層。
Dense
、操作activation(matmul(input, weight) + bias)
を実装します。ここで、 weight
は重み行列、 bias
はバイアス ベクトル、 activation
要素ごとの活性化関数です。
この層は、2 次元バイアス行列を使用した 3 次元重みテンソルもサポートします。この場合、両方の最初の次元がinput
の最初の次元と一致するバッチ サイズとして扱われ、 matmul(_:_:)
操作のバッチ バリアントが使用されるため、要素ごとに異なる重みとバイアスが使用されます。入力バッチ内。
重み行列。
宣言
public var weight: Tensor<Scalar>
バイアスベクトル。
宣言
public var bias: Tensor<Scalar>
要素ごとの活性化関数。
宣言
@noDerivative public let activation: Activation
指定された重み、オプションのバイアス、およびアクティベーション関数からインスタンスを作成します。
宣言
@differentiable(wrt: weight) public init( weight: Tensor<Scalar>, bias: Tensor<Scalar>? = nil, activation: @escaping Activation )
指定された入力サイズ、出力サイズ、要素ごとの活性化関数を使用して
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
に使用するイニシャライザ。