transposed convolutional layer

Et transponeret konvolutionslag er en type neuralt netværkslag, der anvender en transponeret konvolution for at opnå op-sampling af en input-featuremap, i modsætning til et almindeligt konvolutionslag, der udfører nedsampling.

Kort fortalt

Kort fortalt: et lag, der omvendt konvolutionen for at gøre et billede større — altså op-sampling.

Kategori
arkitektur
Niveau
øvet

Betydninger

1
  1. 1

    Et neuralt netværkslag, der udfører en transponeret konvolution (også kaldet dekonvolution) for at øge rumlige dimensioner af inputtet, typisk med et læringsbart filter.

    • I en autoencoder bruges transponerede konvolutionslag til at dekode den latente repræsentation tilbage til et billede.lærebog, 2023
    • Styring af stride og padding i et transponeret konvolutionslag bestemmer graden af op-sampling.

Hvornår bruges det

Bruges i generative modeller som GAN'er og autoencodere til at opbygge detalje fra en komprimeret repræsentation, fx når man vil generere et billede fra en latent vektor. Det anvendes også i segmenteringsnetværk for at genskabe den originale opløsning.

Formel

output_H = (input_H - 1)*stride + kernel_size - 2*padding (for en given dimension uden output_padding)

Kodeeksempel

import torch.nn as nn
# Transposed conv: in_channels=3, out_channels=64, kernel=4, stride=2
tconv = nn.ConvTranspose2d(3, 64, kernel_size=4, stride=2)
output = tconv(torch.randn(1, 3, 32, 32))
print(output.shape)  # Output: (1, 64, 64, 64) (with default padding=0)

PyTorch-eksempel på et transponeret konvolutionslag med kernel 4, stride 2, der øger opløsningen fra 32 til 64 pixels.

Oprindelse

Begrebet 'transponeret' henviser til, at operationen svarer til at anvende den transponerede version af konvolutionens vægtmatrix.

Afledte ord

2

Kilder

1