[Aprendizaje rápido] Introducción a Pytorch (XNUMX): Implemente la regresión MLP y aprenda los conceptos básicos de PyTorch
La última vez, revisé cómo manejar la antorcha, que es la base de PyTorch.
Esta vez, me gustaría implementar la regresión de perceptrón multicapa (MLP) en PyTorch y ver los paquetes principales de PyTorch.
Flujo general
El flujo general de implementación del modelo es el siguiente. Los números entre paréntesis son los paquetes de PyTorch utilizados en ese momento.
- Creación de conjuntos de datos de entrada, procesamiento iterativo (conjunto de datos, cargador de datos)
- Definición de red neuronal (nn. Módulo)
- Cálculo de pérdidas, gradiente propagado a parámetros de red (módulo nn)
- Actualizar los pesos de la red (Optimaizer)
Paquetes principales de PyTorch
Independientemente de PyTorch, muchos marcos de aprendizaje profundo ofrecen varios paquetes para simplificar la implementación. Los elementos principales de PyTorch son:
antorcha.tensor | Matriz multidimensional. Estructura de datos utilizada en PyTorch. |
antorcha.autograd | Implementar propagación hacia adelante / hacia atrás.Admite la operación de diferenciación automática para Tensor, como la propagación hacia atrás (hacia atrás ()). |
antorcha.utils.datos | Incluye utilidades como "Dataset" que recopila los datos que se ingresarán y su etiqueta como un conjunto, y "Dataloader" que extrae datos del Dataset en un mini-lote y los pasa al modelo. |
antorcha.nn.Module | Se utiliza para construir redes neuronales.Responsable de la encapsulación de parámetros, como guardar y cargar modelos y pasar a GPU. |
antorcha.optim | Le permite utilizar algoritmos de optimización de parámetros como SDG y Adam. |
Implementación del modelo
Creando un conjunto de datos
Esta vez, prepararemos sin (5x) más números aleatorios como datos de práctica con numpy.from_numpy()
Convierta a torch.tensor con.
Definición de modelo
En pytorch, el modelo se define como una "clase python" que hereda de la clase nn.Module.
clase MLP (nn.Module): La clase MLP definida hereda de la clase principal nn.
def init (): Recibe argumentos y crea instancias
super (MLP, uno mismo) .init (): Hereda la clase principal con superfunción
def adelante (yo, x): Funciona cuando se llama a la función después de la instanciación. Cuando define la función de avance, la función de retroceso (cálculo de gradiente) también se define automáticamente.
.parameters()
Puede obtener la estructura y los parámetros de la red con.
Cálculo de pérdidas / retropropagación / actualización de peso
Para comprender el comportamiento individual, tomaremos un dato de x y lo ingresaremos en la red neuronal para ver cómo cambian los parámetros debido a los cálculos de error y las actualizaciones de peso.
Intenta cambiar el ciclo de aprendizaje
Realice el flujo anterior para cada lote para entrenar la red neuronal.Dataset
Devuelve un conjunto de datos y la etiqueta correspondiente,DataLoader
Es una clase que devuelve datos en tamaño de lote.
Visualización de gráfico de cálculo
La estructura del MLP de 3 capas creado esta vez se puede visualizar utilizando un paquete de Python llamado torchviz.parameters()
Por favor, cuando no sea suficiente.
Hasta ahora, hemos identificado PyTorch y sus principales paquetes de PyTorch a través de la implementación de la regresión MLP.
discusión
Lista de comentarios
Aún no hay comentarios