¿Cómo construir modelos de transferencia de aprendizaje con PyTorch usando PyTorchCV?

Estás leyendo la publicación: ¿Cómo construir modelos de transferencia de aprendizaje con PyTorch usando PyTorchCV?

Los modelos de visión por computadora requieren mucho esfuerzo para decidir la arquitectura y adaptarlos a los datos de gran tamaño. Para reducir tales esfuerzos, se puede utilizar el aprendizaje por transferencia, que se trata de usar un modelo previamente entrenado para resolver diferentes problemas. PyTorchCV es un marco que nos proporciona una gran cantidad de modelos de visión por computadora pre-entrenados que se consideran soluciones de alto rendimiento que las existentes. En este artículo, vamos a discutir cómo construir modelos de transferencia de aprendizaje en PyTorch con PyTorchCV. Los puntos principales que se discutirán en el artículo se enumeran a continuación.

Tabla de contenidos

  1. ¿Qué es el aprendizaje por transferencia?
  2. Transferir el aprendizaje en visión artificial
  3. ¿Qué es PyTorchCV?
  4. Transfiere el aprendizaje con PyTorchCV

Empecemos por saber qué es el aprendizaje por transferencia.

¿Qué es el aprendizaje por transferencia?

El aprendizaje por transferencia es un tipo de programa de aprendizaje automático en el que utilizamos un modelo entrenado para realizar tareas utilizando información diferente. Por ejemplo, un modelo de bosque aleatorio entrenado en un conjunto de datos IRIS también puede funcionar con datos de dígitos.

Como sabemos, los algoritmos de aprendizaje automático funcionan en función de la información histórica y el resultado que requerimos de ellos es una especie de predicción de cualquier clase o predicción del futuro. Diseñamos estos modelos para que puedan realizar una tarea aislada. También podemos decir que en un programa normal de aprendizaje automático transferimos el conocimiento de origen al conocimiento de destino.

En el aprendizaje por transferencia, también realizamos tareas normales de aprendizaje automático, pero una vez que se prepara un modelo para los datos, usamos su conocimiento obtenido con información diferente. En pocas palabras, el aprendizaje de transferencia es un proceso de uso de un modelo entrenado con información sobre la cual el modelo no está entrenado. Usando este método podemos ahorrar el costo de construir y entrenar un modelo.

En los últimos años, podemos presenciar una variedad de modelos que se pueden utilizar en entornos de aprendizaje de transferencia y obtenemos estos modelos de varios marcos. Uno de los mejores ejemplos de dicho marco es el de la adopción de modelos, donde obtenemos modelos para todos los campos de la ciencia de datos y la inteligencia artificial; en lugar de este marco, también obtenemos modelos de grandes empresas como Microsoft, Google y Facebook. En este artículo, nuestro enfoque está en un marco que proporciona modelos para tareas de visión por computadora en un entorno de aprendizaje de transferencia. Antes de mirar el marco, necesitamos conocer los modelos que pueden brindar el rendimiento más avanzado para tareas de visión por computadora.

🔥 Recomendado:  Modelos de difusión: del arte al estado del arte

¿Está buscando un repositorio completo de bibliotecas de Python utilizadas en ciencia de datos, echa un vistazo aquí.

Transferencia de aprendizaje para visión artificial

La visión por computadora es una parte importante de la ciencia de datos y la inteligencia artificial, y también es difícil porque se trata principalmente de imágenes y datos de video. Es muy difícil extraer información de estos datos y hacer que una máquina aprenda patrones a partir de la información extraída. En lugar de construir un modelo tan difícil, podemos preferir usar un modelo previamente entrenado para un mejor rendimiento.

Hay varios modelos disponibles para usar en entornos de aprendizaje de transferencia en cada sección de la visión por computadora. Algunos de ellos son los siguientes:

Clasificación de imágenes

  • VGG (grupo de geometría virtual): es una red neuronal convolucional profunda.
  • ResNet (red residual): este modelo consta de varias etapas de bloques convolucionales y de identidad.
  • DenseNet: este modelo tiene bloques convolucionales densamente conectados.

Segmentación semántica

  • DeepLabV3: DeepLab es un modelo de segmentación semántica de última generación desarrollado por los investigadores de Google.
  • PSPNet (red de análisis de escena piramidal): este modelo utiliza el módulo de análisis piramidal para completar la segmentación semántica.
  • DenseASPP (agrupación de pirámides espaciales atrosas densamente conectadas): este modelo conecta varios bloques de convolución atrosa en un sistema denso.

Detección de objetos

  • SSD (Single Shot MultiBox Detector): este modelo está desarrollado para la detección de objetos utilizando una única red neuronal de aprendizaje profundo.
  • Faster R-CNN: este modelo se utiliza para la detección de objetos en tiempo real y consiste en una red que puede detectar objetos en una región de la imagen.
  • FPN (redes piramidales de características): este modelo utiliza el módulo de análisis piramidal para completar la detección de objetos en las imágenes.
🔥 Recomendado:  Principales herramientas de interpretación de modelos de aprendizaje automático

Estimación de poses

  • CPM (máquina de pose convolucional)
  • OpenPose: este modelo utiliza campos de afinidad de piezas para la estimación de poses en tiempo real.

Aquí hemos visto algunos de los modelos que podemos usar en modelos de visión por computadora para problemas de visión por computadora. Echemos un vistazo a un marco que solo está diseñado para realizar transferencias de aprendizaje en el campo de la visión por computadora llamado PyTorchCV.

¿Qué es PyTorchCV?

PyTorchCV es un marco que se construye utilizando la biblioteca PyTorch y consta de modelos de aprendizaje de transferencia que están relacionados solo con el modelado de visión por computadora. PyTorchCV proporciona la característica de construir modelos de aprendizaje profundo de alto rendimiento que han mostrado un mejor rendimiento que los otros marcos existentes.

Podemos encontrar el repositorio GitHub de este framework aquí. Desde el repositorio, podemos utilizar los códigos fuente para varios modelos de visión artificial de última generación.

Dado que este marco se basa en PyTorch, un usuario general de PyTorch puede comprender fácilmente los usos de este marco. Los modelos que este marco tiene en las colecciones se entrenan con conjuntos de datos como ImageNet-1K, CIFAR-10/100, SVHN, CUB-200-2011, Pascal VOC2012, ADE20K, Cityscapes y COCO. Podemos encontrar todos los modelos implementados en el marco aquí. Podemos utilizar modelos de este marco después de instalarlo en nuestro entorno.

La instalación se puede realizar de la siguiente manera.

!pip instalar pytorchcv

Aún así, hay una recomendación del lado del desarrollador para usar este marco con la versión de antorcha> = 0.4.1. Podemos instalar ambos a la vez usando las siguientes líneas de códigos:

!pip instalar antorcha pytorchcv>=0.4.0

Después de la instalación, podemos usar los modelos preentrenados que están disponibles en el marco.

Transfiere el aprendizaje con PyTorchCV

Esta sección incluye la información básica sobre la implementación de un modelo proporcionado por el framework PyTorchCV. Por ejemplo, si queremos usar un resnet-18 como modelo de transferencia de aprendizaje, podemos hacerlo de la siguiente manera:

Cargando modelo

desde pytorchcv.model_provider importar get_model como ptcv_get_model net = ptcv_get_model(“resnet18”, pretrained=True) net

Producción:

Aquí podemos ver la estructura de ResNet. Dado que la imagen es demasiado grande, no se publica aquí.

Definición de una imagen

importar antorcha desde torch.autograd import Variable x = Variable(torch.randn(1, 3, 224, 224))

🔥 Recomendado:  Liberando el poder de LLM para aplicaciones empresariales con LangChain

Ajuste del modelo en la imagen

y = neto(x)

En el paso anterior, obtendremos las características extraídas de la imagen mediante el modelo de aprendizaje de transferencia ResNet-18 instanciado.

Aquí hemos visto cómo podemos utilizar este marco y su modelo pre-entrenado proporcionado. Una cosa que me gustó de este marco es que los desarrolladores de este marco se enfocan solo en implementar modelos relacionados con la visión artificial únicamente. Debido a que la implementación solo está relacionada con la visión por computadora, este marco está orientado al alto rendimiento en tareas de visión por computadora y puede ayudar en proyectos relacionados solo con la visión por computadora. Dado que la mayoría de los modelos de aprendizaje de transferencia en visión por computadora se construyen utilizando redes neuronales convolucionales, este marco no divide su conocimiento en otras secciones de redes neuronales como RNN y LSTM. Esta característica hace que este marco sea liviano y de alto rendimiento. Una cosa más que es buena sobre el marco es que usa Pytorch como su biblioteca base, por lo que cada vez que verifica los modelos del código fuente, un buen usuario de PyTorch puede comprender fácilmente el proceso de extracción de un modelo previamente entrenado. Todas estas cualidades pueden hacer que usemos este marco para nuestros procedimientos de aprendizaje de transferencia de visión por computadora.

Ultimas palabras

En este artículo, hemos discutido el aprendizaje por transferencia y el aprendizaje por transferencia en visión artificial. Junto con esto, observamos la lista de algunos modelos que se pueden usar en configuraciones de transferencia de aprendizaje para resolver problemas de visión artificial y hemos analizado el uso de un marco PyTorchCV que solo incluye modelos de visión artificial.

Referencias

Tabla de Contenido