밀집한

@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
  • 요소별 활성화 함수 유형입니다.

    선언

    public typealias Activation = @differentiable (Tensor<Scalar>) -> Tensor<Scalar>
  • 주어진 가중치, 선택적 편향, 활성화 함수로부터 인스턴스를 생성합니다.

    메모

    현재 weight 유일한 차별화 매개변수입니다. Optional Differentiable : TF-499를 조건부로 준수한 후 bias 차별화 매개변수로 만들 수 있습니다.

    선언

    @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 에 사용할 초기화 프로그램입니다.