Dönüşüm2D

@frozen
public struct Conv2D<Scalar> : Layer where Scalar : TensorFlowFloatingPoint

2 boyutlu bir evrişim katmanı (örneğin, görüntüler üzerinde uzamsal evrişim).

Bu katman, çıktıların tensörünü üretmek için katman girişiyle evrilen bir evrişim filtresi oluşturur.

  • 4 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)
  • Evrişim için doldurma algoritması.

    beyan

    @noDerivative
    public let padding: Padding
  • Uzamsal boyutlar için genişleme faktörü.

    beyan

    @noDerivative
    public let dilations: (Int, Int)
  • Öğe bazında etkinleştirme işlevi türü.

    beyan

    public typealias Activation = @differentiable (Tensor<Scalar>) -> Tensor<Scalar>
  • Belirtilen filtre, önyargı, etkinleştirme işlevi, adımlar, genişletmeler ve dolguyla bir Conv2D katmanı oluşturur.

    beyan

    public init(
      filter: Tensor<Scalar>,
      bias: Tensor<Scalar>? = nil,
      activation: @escaping Activation = identity,
      strides: (Int, Int) = (1, 1),
      padding: Padding = .valid,
      dilations: (Int, Int) = (1, 1)
    )

    Parametreler

    filter

    Şeklin 4 boyutlu evrişim filtresi [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

    Uzaysal boyutlar için kayan pencerenin adımları, yani (adım yüksekliği, adım genişliği).

    padding

    Evrişim için doldurma algoritması.

    dilations

    Uzamsal boyutlar için genişleme faktörleri, yani (genişleme yüksekliği, genişleme genişliği).

  • Katmanın verilen girişe uygulanmasıyla elde edilen çıktıyı döndürür.

    Çıktı uzamsal boyutları şu şekilde hesaplanır:

    çı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.

    beyan

    @differentiable
    public func forward(_ input: Tensor<Scalar>) -> Tensor<Scalar>

    Parametreler

    input

    Şekil katmanına giriş [toplu iş boyutu, giriş yüksekliği, giriş genişliği, giriş kanalı sayısı].

    Geri dönüş değeri

    Şeklin çıktısı [parti sayısı, çı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 Conv2D katmanı oluşturur.

    beyan

    public init(
      filterShape: (Int, Int, Int, Int),
      strides: (Int, Int) = (1, 1),
      padding: Padding = .valid,
      dilations: (Int, Int) = (1, 1),
      activation: @escaping Activation = identity,
      useBias: Bool = true,
      filterInitializer: ParameterInitializer<Scalar> = glorotUniform(),
      biasInitializer: ParameterInitializer<Scalar> = zeros()
    )

    Parametreler

    filterShape

    4 boyutlu evrişim filtresinin şekli (filtre yüksekliği, filtre genişliği, giriş kanalı sayısı, çıkış kanalı sayısı).

    strides

    Uzaysal boyutlar için kayan pencerenin adımları, yani (adım yüksekliği, adım genişliği).

    padding

    Evrişim için doldurma algoritması.

    dilations

    Uzamsal boyutlar için genişleme faktörleri, yani (genişleme yüksekliği, genişleme genişliği).

    activation

    Öğe bazında aktivasyon fonksiyonu.

    filterInitializer

    Filtre parametreleri için kullanılacak başlatıcı.

    biasInitializer

    Önyargı parametreleri için kullanılacak başlatıcı.