@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
.