كثيف

@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

    مُهيئ لاستخدامه في bias .