@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
یک نمونه از وزن داده شده، سوگیری اختیاری و تابع فعال سازی ایجاد می کند.
توجه داشته باشید
در حال حاضرweight
تنها پارامتر تمایز پذیری است.bias
می توان پس از تطابق شرطیOptional
باDifferentiable
: TF-499، یک پارامتر تفکیک پذیری ایجاد کرد.اعلام
@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
Initializer برای استفاده برای
bias
.