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