@frozen
public struct Conv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
یک لایه کانولوشن سه بعدی برای پیچیدگی مکانی/مکانی-زمانی روی تصاویر.
این لایه یک فیلتر کانولوشن ایجاد می کند که با ورودی لایه پیچیده می شود تا یک تانسور خروجی تولید کند.
فیلتر کانولوشن 5 بعدی.
اعلامیه
public var filter: Tensor<Scalar>
بردار تعصب.
اعلامیه
public var bias: Tensor<Scalar>
تابع فعال سازی از نظر عنصر.
اعلامیه
@noDerivative public let activation: Activation
گام های پنجره کشویی برای ابعاد فضایی.
اعلامیه
@noDerivative public let strides: (Int, Int, Int)
الگوریتم padding برای کانولوشن.
اعلامیه
@noDerivative public let padding: Padding
عامل اتساع برای ابعاد زمانی مکانی/فضایی.
اعلامیه
@noDerivative public let dilations: (Int, Int, Int)
یک لایه
Conv3D
با فیلتر مشخص شده، بایاس، عملکرد فعالسازی، گامها، و padding ایجاد میکند.اعلامیه
public init( filter: Tensor<Scalar>, bias: Tensor<Scalar>? = nil, activation: @escaping Activation = identity, strides: (Int, Int, Int) = (1, 1, 1), padding: Padding = .valid, dilations: (Int, Int, Int) = (1, 1, 1) )
پارامترها
filter
فیلتر کانولوشن 5 بعدی شکل [عمق فیلتر، ارتفاع فیلتر، عرض فیلتر، تعداد کانال ورودی، تعداد کانال های خروجی].
bias
بردار بایاس شکل [تعداد کانال خروجی].
activation
تابع فعال سازی از نظر عنصر.
strides
گام های پنجره کشویی برای ابعاد فضایی، یعنی (عمق گام، ارتفاع گام، عرض گام)
padding
الگوریتم padding برای کانولوشن.
dilations
عامل اتساع برای ابعاد مکانی/فضایی-زمانی.
خروجی به دست آمده از اعمال لایه به ورودی داده شده را برمی گرداند.
ابعاد فضایی خروجی به صورت زیر محاسبه می شود:
عمق خروجی = (عمق ورودی + 2 * عمق لایه - (عمق اتساع * (عمق فیلتر - 1) + 1)) / عمق گام + 1
ارتفاع خروجی = (ارتفاع ورودی + 2 * ارتفاع بالشتک - (ارتفاع گشاد شدن * (ارتفاع فیلتر - 1) + 1)) / ارتفاع گام + 1
عرض خروجی = (عرض ورودی + 2 * عرض لایه - (عرض گشاد شدن * (عرض فیلتر - 1) + 1)) / عرض گام + 1
و اندازه بالشتک ها توسط طرح padding تعیین می شود.
توجه داشته باشید
اندازه پد هنگام استفاده از
.valid
برابر با صفر است.پارامترها
input
ورودی لایه شکل [تعداد دسته ای، عمق ورودی، ارتفاع ورودی، عرض ورودی، تعداد کانال ورودی].
ارزش بازگشتی
خروجی شکل [تعداد دسته ای، عمق خروجی، ارتفاع خروجی، عرض خروجی، تعداد کانال های خروجی].
یک لایه
Conv3D
با شکل فیلتر مشخص شده، گامها، بالشتکها، اتساع و عملکرد فعالسازی از نظر عنصر ایجاد میکند. تانسور فیلتر با استفاده از مقداردهی اولیه یکنواخت Glorot با دانه مشخص شده مقداردهی اولیه می شود. بردار بایاس با صفر آغاز می شود.اعلامیه
public init( filterShape: (Int, Int, Int, Int, Int), strides: (Int, Int, Int) = (1, 1, 1), padding: Padding = .valid, dilations: (Int, Int, Int) = (1, 1, 1), activation: @escaping Activation = identity, useBias: Bool = true, filterInitializer: ParameterInitializer<Scalar> = glorotUniform(), biasInitializer: ParameterInitializer<Scalar> = zeros() )
پارامترها
filterShape
شکل فیلتر کانولوشن 5 بعدی، نشان دهنده (عمق فیلتر، ارتفاع فیلتر، عرض فیلتر، تعداد کانال ورودی، تعداد کانال های خروجی).
strides
گام های پنجره کشویی برای ابعاد فضایی، یعنی (عمق گام، ارتفاع گام، عرض گام)
padding
الگوریتم padding برای کانولوشن.
dilations
عامل اتساع برای ابعاد مکانی/فضایی-زمانی.
activation
تابع فعال سازی از نظر عنصر.
filterInitializer
آغازگر برای استفاده برای پارامترهای فیلتر.
biasInitializer
آغازگر برای استفاده برای پارامترهای بایاس.