Explicación detallada de torch.nn.Parameter () en PyTorch

Después de leer muchos blogs, encontré un uso self.v = torch.nn.Parameter (torch.FloatTensor (hidden_size)), en primer lugar, puedo entender esta función como una función de conversión de tipos y convertir un Tensor de tipo no entrenable en Entrene el parámetro de tipo y vincule este parámetro a este módulo (net.parameter () tiene este parámetro enlazado, por lo que se puede optimizar cuando se optimiza el parámetro), por lo que después de la conversión de tipo, este self.v se convierte en Se convirtió en parte del modelo y se convirtió en un parámetro que se puede cambiar en el modelo de acuerdo con la capacitación. El propósito de usar esta función también es permitir que algunas variables modifiquen continuamente sus valores en el proceso de aprendizaje para lograr la optimización.

Donde aparece esta función

En el mecanismo de atención concat, el peso V se aprende constantemente, por lo que si el tipo de parámetro no se usa directamente con una antorcha.nn.Linear () puede ser porque el efecto de aprendizaje no es bueno.

A través de los siguientes experimentos, se descubrió que el peso y el sesgo en lineal son el tipo de parámetro, y no pueden ser reemplazados por el tipo de tensor, y el peso en lineal incluso puede cambiar el modelo al especificar una forma diferente de la inicialización.

self.gamma está vinculado al modelo, por lo que puede optimizarse durante el entrenamiento.

943 artículos originales publicados · Me gusta 136 · Visita 330,000+

Supongo que te gusta

Origin blog.csdn.net/weixin_36670529/article/details/105224135
Recomendado
Clasificación