متراکم

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

یک لایه شبکه عصبی با اتصال متراکم.

Dense activation(matmul(input, weight) + bias) را پیاده‌سازی می‌کند، که در آن weight یک ماتریس وزن است، bias یک بردار بایاس است، و activation یک تابع فعال‌سازی از نظر عنصر است.

این لایه همچنین از تانسورهای وزن سه بعدی با ماتریس های بایاس دو بعدی پشتیبانی می کند. در این مورد، بعد اول هر دو به عنوان اندازه دسته ای در نظر گرفته می شود که با بعد اول 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

    Initializer برای استفاده برای bias .