¿Qué es pytorch??
Pytorch es un marco de aprendizaje profundo de código abierto para construir arquitecturas de red y otras técnicas de alto nivel como RNN, CNN y LSTM. Es utilizado por investigadores, empresas y comunidades de ML y AI.
El grupo de investigación de inteligencia artificial de Facebook es principalmente responsable de su desarrollo.
¿Qué es Tensor (enfoque basado en matemáticas)?
Ejercer una fuerza sobre una superficie y ver cómo se desvía en diferentes direcciones. Es posible que anticipe que se mueva en la misma dirección que la fuerza, pero esto no siempre sucede; La razón de esto es que el material no es uniforme en todas las direcciones; puede tener alguna estructura, como un cristal o capas. Una fuerza, que es un vector, es su punto de partida. (Las direcciones X, Y y Z tienen tres componentes.) Recibe un vector de deflexión (movimiento en x, y y z). La fuerza, sin embargo, está en la dirección inversa desde el movimiento! Fingimos que la respuesta es proporcional a la fuerza, lo que significa duplicar la fuerza dos veces el movimiento. Esto se llama una "reacción lineal."
¿Cómo puedes poner todo esto en términos matemáticos?? Con un tensor, por supuesto. Considere que un tensor es un instrumento matemático que toma un vector (como la fuerza) y devuelve un nuevo vector (el movimiento). Los tensores solo se requieren cuando los dos vectores apuntan en direcciones opuestas.
Iteraciones, lotes, epocs. ¿Qué son en términos de redes neuronales??
El número de iteraciones (denotado por norte Aquí) es el número de veces que un lote de instancias de entrenamiento estima el gradiente y actualiza los parámetros de la red neuronal.
El tamaño del lote B se refiere a cuántas instancias de capacitación se emplean en una sola iteración. Esto generalmente se usa cuando el número de instancias de entrenamiento es bastante grande, y generalmente es efectivo dividir todos los datos en mini lotes. Cada lote tiene el tamaño: 1< B < N.
Para usar los datos de capacitación completos una vez, se necesita norte (norte/B) iteraciones. Esto es lo que es una época. Entonces (norte/B)*mi, dónde mi es el número de épocas, es el número total de veces que se cambian los parámetros.
Hay tres tipos de descenso de gradiente. Hay una compensación entre ellos, ya que se puede dar una buena precisión, pero es lento. Por otro lado, uno es más rápido, pero no garantiza una buena precisión:
N = b, una época equivale a una iteración en modo por lotes.
Modo de mini lotes: 1 < B < N, with N/B iterations per epoch.
B = 1, una época toma n iteraciones en el modelo estocástico de descenso de gradiente.
Implementación de dataLoader en el conjunto de datos MNIST de moda
Cargando el conjunto de datos de la moda de Pytorch
Fashion-Mnist es un conjunto de datos de imágenes que incluye 60,000 capacitación y 10,000 instancias de prueba. Cada ejemplo incluye una imagen en escala de grises de 28 x 28 con una etiqueta de una de las diez categorías. A continuación se presentan algunos parámetros que satisface al cargar el conjunto de datos.
raíz: Este es el directorio en el que se guarda el conjunto de datos.
tren: indica que los datos entrenados o probados deben cargarse.
descargar: Si los datos no están disponibles en Root, se descarga a través de Internet.
transformar y target_transform: Estos parámetros especifican la característica y las transformaciones de la etiqueta.
antorcha de importaciónCostumbre Conjunto de datos de sus archivos
importosEn el código anterior, vemos tres métodos importantes:
__en eso__: Esta función se llama cuando se crea el objeto de conjunto de datos. Ambas transformaciones, así como el directorio que contiene las imágenes y el archivo de anotaciones, se configuran.
__len__: Esta función le devuelve la longitud del conjunto de datos o el número de muestras en el conjunto de datos.
__obtiene el objeto__: Este método nos da la muestra presente en un índice.
Capacitación con dataLoader
Almacenar los datos en los cargadores de datos. Los cargadores de datos son iterables que le permiten pasar las muestras una a la vez al momento del entrenamiento e incluso barajar los datos después de que se procesen todos los lotes.
de la antorcha.tensiones.Data Import DataloaderIterar el dataloader
# Mostrar imagen y etiqueta.Producción
La forma de las características del lote actual es la antorcha.Tamaño ([32, 1, 28, 28])
La forma de las etiquetas de la forma de lote actual es la antorcha.Tamaño ([32])
Etiqueta: 5
Cada iteración en el código anterior devuelve un lote de características de capacitación y etiquetas de entrenamiento para cada iteración. Para evitar el sobreajuste, los datos se barajan después de que todos los lotes se hayan procesado.
Implementación del cargador de datos en un conjunto de datos personalizado
# Importar las bibliotecas que utilizaremosProducción
0 tensor ([0, 4, 9, 15, 14])Conclusión
Revisamos la implementación del dataLoader de Pytorch para administrar la capacitación de nuestros datos. Ahora nos damos cuenta de la facilidad con la que podemos administrar los lotes, barajar, iteración de nuestros conjuntos de datos utilizando dataLoader. Esto ayuda en un mejor análisis de nuestros modelos y, en última instancia, los mejora.