Tensores en aprendizaje profundo

Definición de tensor

Los datos utilizados en el ejemplo anterior se almacenan en una matriz Numpy multidimensional, también llamada tensor. En general, todos los sistemas actuales de aprendizaje automático utilizan tensores como la estructura básica de datos. Los tensores son muy importantes en este campo, tan importante que el TensorFlow de Google lleva su nombre. El núcleo del concepto de tensor es que es un contenedor de datos. Los datos que contiene casi siempre son datos numéricos, por lo que es un contenedor de números. Puede estar familiarizado con las matrices, que son tensores bidimensionales. Un tensor es una generalización de una matriz a cualquier dimensión [tenga en cuenta que la dimensión de un tensor (dimensión) generalmente se denomina eje].

Vector

Un tensor que contiene solo un número se llama escalar (escalar, también llamado tensor escalar, tensor de dimensión cero o tensor 0D).
Un conjunto de números se denomina vector o tensor unidimensional (tensor 1D). El tensor unidimensional tiene solo un eje. A continuación se muestra un vector Numpy.

>>> x = np.array([12, 3, 6, 14, 7])
>>> x
array([12, 3, 6, 14, 7])
>>> x.ndim
1

Este vector tiene 5 elementos, por lo que se llama vector 5D. ¡No confunda los vectores 5D con los tensores 5D! El vector 5D tiene solo un eje, con 5 dimensiones a lo largo del eje, y el tensor 5D tiene 5 ejes (puede haber cualquier cantidad de dimensiones a lo largo de cada eje). La dimensionalidad puede representar el número de elementos a lo largo de un determinado eje (como un vector 5D), o el número de ejes en un tensor (como un tensor 5D), que a veces es confuso. Para el último caso, la declaración técnicamente más precisa es el tensor de quinto orden (el orden del tensor es el número de ejes), pero la forma vaga de escribir el tensor 5D es más común.

Combinando múltiples tensores 3D en una matriz, puede crear un tensor 4D, y así sucesivamente. El aprendizaje profundo generalmente procesa
tensores de 0D a 4D, pero puede encontrar tensores 5D al procesar datos de video.

Atributo clave

Los tensores se definen por los siguientes tres atributos clave.
‰ Número de ejes (orden). Por ejemplo, un tensor 3D tiene 3 ejes y una matriz tiene 2 ejes. Esto también se llama ndim de tensor en las bibliotecas de Python como Numpy.
‰ forma. Esta es una tupla de enteros que representa la dimensión (número de elementos) del tensor a lo largo de cada eje. Por ejemplo, la forma del ejemplo de matriz anterior es (3, 5), y la forma del ejemplo de tensor 3D es (3, 3, 5). La forma del vector contiene solo un elemento, como (5,), y la forma del escalar está vacía, es decir ().
‰ Tipo de datos (a menudo llamado dtype en las bibliotecas de Python). Este es el tipo de datos contenidos en el tensor. Por ejemplo, el tipo de tensor puede ser float32, uint8, float64, etc. En casos raros, puede encontrar tensores de carbón. Tenga en cuenta que no hay un tensor de cadena en Numpy (y en la mayoría de las otras bibliotecas) porque el tensor se almacena en un segmento de memoria contiguo preasignado, y la longitud de la cadena es variable y no se puede almacenar de esta manera.

Operador tensor

Utilizamos la sintaxis train_images [i] para seleccionar números específicos a lo largo del primer eje. La selección de un elemento específico de un tensor se denomina corte de tensor.

Lote de datos

En términos generales, el primer eje (eje 0, porque el índice comienza en 0) de todos los tensores de datos en el aprendizaje profundo es el eje de muestra (a veces llamado dimensión de muestra).
El primer eje (eje 0) se denomina eje de lote o dimensión de lote.

Tensores de datos en el mundo real

‰ Datos vectoriales: tensor 2D con forma (muestras, características).
‰ Datos de series temporales o datos de secuencia: tensor 3D con forma (muestras, pasos de tiempo, características).
‰ Imagen: tensor 4D con forma (muestras, altura, ancho, canales) o (muestras, canales, altura, ancho).
‰ Video: tensor 5D con forma (muestras, cuadros, altura, ancho, canales) o (muestras, cuadros, canales, altura, ancho).

Datos vectoriales

Esta es la información más común. Para este conjunto de datos, cada punto de datos se codifica como un vector, por lo que un lote de datos se codifica como un tensor 2D (es decir, una matriz de vectores), donde el primer eje es el eje de muestra y el segundo eje es Eje de características.

Datos de series de tiempo o datos de secuencia

Inserte la descripción de la imagen aquí

Datos de imagen

Las imágenes generalmente tienen tres dimensiones: altura, ancho y profundidad de color. Aunque las imágenes en escala de grises (como las imágenes digitales MNIST) tienen un solo canal de color y, por lo tanto, pueden almacenarse en tensores 2D, por convención, los tensores de imágenes son siempre tensores 3D, y las imágenes en escala de grises solo tienen un canal de color unidimensional. Por lo tanto, si el tamaño de la imagen es 256 × 256, el lote que consta de 128 imágenes en escala de grises puede almacenarse en un tensor de forma (128, 256, 256, 1), y el lote que consta de 128 imágenes en color puede almacenarse en un En un tensor de forma (128, 256, 256, 3).
Existen dos convenciones para la forma del tensor de imagen: la última convención de canales (utilizada en TensorFlow) y la convención de primeros canales (utilizada en Theano). El marco de aprendizaje automático TensorFlow de Google coloca el eje de profundidad de color al final: (muestras, altura, ancho, profundidad de color). Por el contrario, Theano coloca el eje de profundidad de la imagen después del eje del lote: (muestras, profundidad de color, altura, ancho).

Datos de video

Los datos de video son uno de los pocos tipos de datos que requieren tensores 5D en la vida real. El video puede verse como una serie de cuadros, cada cuadro es una imagen en color. Dado que cada cuadro se puede guardar en un tensor 3D con la forma (altura, ancho, color_depth), se puede guardar una serie de cuadros en un tensor 4D con la forma (cuadros, altura, ancho, color_depth), que se compone de diferentes videos El lote se puede guardar en un tensor 5D con la forma (muestras, cuadros, altura, ancho, profundidad de color).

304 artículos originales publicados · 51 alabanzas · 140,000 visitas

Supongo que te gusta

Origin blog.csdn.net/qq_39905917/article/details/104546998
Recomendado
Clasificación