@frozen
public struct Conv3D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint
Görüntüler üzerinde uzaysal/uzaysal-zamansal evrişim için 3 boyutlu bir evrişim katmanı.
Bu katman, çıktıların tensörünü üretmek için katman girişiyle evrilen bir evrişim filtresi oluşturur.
5 boyutlu evrişim filtresi.
beyan
public var filter: Tensor<Scalar>
Önyargı vektörü.
beyan
public var bias: Tensor<Scalar>
Öğe bazında aktivasyon fonksiyonu.
beyan
@noDerivative public let activation: Activation
Uzamsal boyutlar için kayan pencerenin adımları.
beyan
@noDerivative public let strides: (Int, Int, Int)
Evrişim için doldurma algoritması.
beyan
@noDerivative public let padding: Padding
Uzamsal/uzaysal zamansal boyutlar için genişleme faktörü.
beyan
@noDerivative public let dilations: (Int, Int, Int)
Belirtilen filtre, önyargı, etkinleştirme işlevi, adımlar ve dolgu ile bir
Conv3D
katmanı oluşturur.beyan
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) )
Parametreler
filter
Şeklin 5 boyutlu evrişim filtresi [filtre derinliği, filtre yüksekliği, filtre genişliği, giriş kanalı sayısı, çıkış kanalı sayısı].
bias
Şeklin önyargı vektörü [çıkış kanalı sayısı].
activation
Öğe bazında aktivasyon fonksiyonu.
strides
Uzamsal boyutlar için kayan pencerenin adımları (adım derinliği, adım yüksekliği, adım genişliği)
padding
Evrişim için doldurma algoritması.
dilations
Uzamsal/uzaysal-zamansal boyutlar için genişleme faktörü.
Katmanın verilen girişe uygulanmasıyla elde edilen çıktıyı döndürür.
Çıktı uzamsal boyutları şu şekilde hesaplanır:
çıkış derinliği = (giriş derinliği + 2 * dolgu derinliği - (genişleme derinliği * (filtre derinliği - 1) + 1)) / adım derinliği + 1
çıkış yüksekliği = (giriş yüksekliği + 2 * dolgu yüksekliği - (genişleme yüksekliği * (filtre yüksekliği - 1) + 1)) / adım yüksekliği + 1
çıktı genişliği = (giriş genişliği + 2 * dolgu genişliği - (genişleme genişliği * (filtre genişliği - 1) + 1)) / adım genişliği + 1
ve dolgu boyutları dolgu şemasına göre belirlenir.
Not
.valid
kullanıldığında dolgu boyutu sıfıra eşittir.Parametreler
input
Şekil katmanına giriş [toplu sayım, giriş derinliği, giriş yüksekliği, giriş genişliği, giriş kanalı sayısı].
Dönüş Değeri
Şeklin çıktısı [parti sayısı, çıktı derinliği, çıktı yüksekliği, çıktı genişliği, çıktı kanalı sayısı].
Belirtilen filtre şekli, adımlar, dolgu, genişletme ve öğe bazında etkinleştirme işleviyle bir
Conv3D
katmanı oluşturur. Filtre tensörü, belirtilen tohumla Glorot tekdüze başlatma kullanılarak başlatılır. Önyargı vektörü sıfırlarla başlatılır.beyan
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() )
Parametreler
filterShape
5 boyutlu evrişim filtresinin şekli (filtre derinliği, filtre yüksekliği, filtre genişliği, giriş kanalı sayısı, çıkış kanalı sayısı).
strides
Uzamsal boyutlar için kayan pencerenin adımları (adım derinliği, adım yüksekliği, adım genişliği)
padding
Evrişim için doldurma algoritması.
dilations
Uzamsal/uzaysal-zamansal boyutlar için genişleme faktörü.
activation
Öğe bazında aktivasyon işlevi.
filterInitializer
Filtre parametreleri için kullanılacak başlatıcı.
biasInitializer
Önyargı parametreleri için kullanılacak başlatıcı.