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.

¿Cómo funciona la poda L1-norm de PyTorch?

Vamos a ver primero el resultado que obtuve. Esta es una de las capas de convolución de mi modelo, y solo estoy mostrando los pesos de 11 filtros de 3×3 con canal=1.

El lado izquierdo es el peso original y el lado derecho es el peso podado.

Así que me preguntaba cómo funciona “TORCH.NN.UTILS.PRUNE.L1_UNSTRUCTURED” porque según el sitio web de PyTorch, poda la unidad de menor norma L1, pero según yo, la poda de norma L1 es un método de poda de filtros que poda todo el filtro usando esta ecuación para encontrar el valor más bajo del filtro en lugar de podar un solo peso. Así que tengo curiosidad por saber cómo funciona realmente esta función.

El siguiente es mi código de poda:

parameters_to_prune = (
(model.input_layer[0], ‘weight’),
(model.hidden_layer1[0], ‘weight’),
(model.hidden_layer2[0], ‘weight’),
(model.output_layer[0], ‘weight’)
)

prune.global_unstructured(
parameters_to_prune,
pruning_method=prune.L1Unstructured,
amount = (porcentaje_podado/100),
)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Como mencionaste, L1-norm pruning es un método de poda de filtros que poda todo el filtro en lugar de pesos individuales. Sin embargo, la función “TORCH.NN.UTILS.PRUNE.L1_UNSTRUCTURED” te permite podar pesos individuales basados en su valor de L1-norma.

    La función poda pesos individuales que tienen el valor absoluto más pequeño de la L1-norma. Por lo tanto, estos pesos se consideran tener el menor impacto en el rendimiento general del modelo. Al podar estos pesos particulares, la función reduce la complejidad general del modelo, lo que puede resultar en una mayor velocidad de inferencia y requisitos de memoria reducidos.

    En tu código proporcionado, estás utilizando la función prune.global_unstructured(), que aplica poda global no estructurada a los parámetros en el modelo dado. El argumento parameters_to_prune especifica los parámetros y el tipo de poda que se aplicará en ellos. El método de poda se establece en prune.L1Unstructured, que poda los parámetros utilizando poda no estructurada basada en L1-norma. El argumento amount especifica el porcentaje de pesos que se deben podar.

    En general, la función “TORCH.NN.UTILS.PRUNE.L1_UNSTRUCTURED” es uno de los muchos métodos de poda disponibles en PyTorch. Permite la poda de pesos individuales basada en el valor de L1-norma y puede ayudar a reducir la complejidad del modelo mientras se mantiene el rendimiento.

Comments are closed.