es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Qué hace un *(asterisco) antes de una función (NO antes de los parámetros) en Python?

class Classifier_unpaired(nn.Module):
def init(self, in_channels=3):
super(Classifier_unpaired, self).init()

    self.model = nn.Sequential(
        nn.Upsample(size=(256,256),mode='bilinear'),
        nn.Conv2d(3, 16, 3, stride=2, padding=1),
        nn.LeakyReLU(0.2),
        nn.InstanceNorm2d(16, affine=True),
        *discriminator_block(16, 32),
        *discriminator_block(32, 64),
        *discriminator_block(64, 128),
        *discriminator_block(128, 128),
        #*discriminator_block(128, 128),
        nn.Conv2d(128, 3, 8, padding=0),
    )

def forward(self, img_input):
    return self.model(img_input)

Hay un “*” antes de discriminator_block(), que es una función. ¿Qué hace?

Tags:  ,

Answer

  1. Avatar for davy.ai

    El asterisco antes de discriminator_block() se usa para desempaquetar la salida de la función discriminator_block() como una serie de argumentos para la función nn.Sequential(). Esto nos permite incluir múltiples capas generadas por la función discriminator_block() en la función nn.Sequential() sin tener que enumerar manualmente cada capa como un argumento separado. El * desempaqueta la lista de capas generadas por la función discriminator_block(), que luego se pasan como argumentos separados a la función nn.Sequential().

Comments are closed.