Main Content

dlarray

Arreglo de deep learning para personalización

Desde R2019b

Descripción

Un arreglo de deep learning almacena datos con etiquetas de formato opcionales de datos para bucles de entrenamiento personalizados y permite que las funciones calculen y usen derivadas a través de la diferenciación automática.

Sugerencia

Para la mayor parte de las tareas de deep learning, puede utilizar una red neuronal preentrenada y adaptarla a sus propios datos. Para ver un ejemplo de cómo usar la transferencia del aprendizaje para volver a entrenar una red neuronal convolucional para clasificar un nuevo conjunto de imágenes, consulte Entrenar redes de deep learning para clasificar nuevas imágenes. Como alternativa, puede crear y entrenar redes neuronales desde cero usando objetos layerGraph con las funciones trainNetwork y trainingOptions.

Si la función trainingOptions no proporciona las opciones de entrenamiento que necesita para la tarea, puede crear un bucle de entrenamiento personalizado mediante diferenciación automática. Para obtener más información, consulte Define Deep Learning Network for Custom Training Loops.

Creación

Descripción

ejemplo

dlX = dlarray(X) devuelve un objeto dlarray que representa X. Si X es un dlarray, dlX es una copia de X.

ejemplo

dlX = dlarray(X,fmt) formatea los datos de dlX con etiquetas de dimensión según el formato de los datos en fmt. Las etiquetas de dimensión ayudan a pasar datos de deep learning entre funciones. Para obtener más información sobre las etiquetas de dimensión, consulte Uso. Si X es un dlarray con formato, fmt reemplaza el formato existente.

ejemplo

dlX = dlarray(v,dim) acepta un vector v y un formato de un solo carácter dim, y devuelve un vector columna dlarray. La primera dimensión de dlX tiene la etiqueta de dimensión dim, y la segunda dimensión (única) tiene la etiqueta de dimensión 'U'.

Argumentos de entrada

expandir todo

Arreglo de datos, especificado como un arreglo numérico del tipo de datos double o single, un arreglo logical, un objeto gpuArray o un objeto dlarray. X debe estar lleno, no disperso.

Ejemplo: rand(31*23,23)

Tipos de datos: single | double | logical
Soporte de números complejos:

Formato de los datos, especificado como escalar de cadena o vector de caracteres. Cada carácter de la cadena debe ser una de las etiquetas de dimensión siguientes:

  • "S": espacial

  • "C": canal

  • "B": lote

  • "T": tiempo

  • "U": sin especificar

Puede especificar cualquier número de etiquetas "S" y "U". Puede especificar como máximo una de cada de las etiquetas "C", "B" y "T".

Cada elemento de fmt etiqueta la dimensión coincidente de los datos de entrada. Si fmt no aparece en el orden indicado ('S' seguido de 'C', etc.), dlarray permuta de forma implícita fmt y los datos para que coincidan con el orden sin cambiar el almacenamiento de los datos.

fmt debe contener al menos el mismo número de etiquetas que el número de dimensiones de los datos de entrada. Si especifica más etiquetas de dimensión que el número de dimensiones de los datos de entrada, dlarray creará dimensiones vacías (únicas) para las etiquetas adicionales.

En la siguiente tabla se indican los formatos de datos recomendados para tipos de datos habituales.

Datos Ejemplo
FormaFormato de los datos
Imágenes 2D

Arreglo numérico de h por w por c por n, donde h, w, c y n son la altura, la anchura, el número de canales de las imágenes y el número de observaciones, respectivamente.

"SSCB"
Imágenes 3DArreglo numérico de h por w por d por c por n, en el que h, w, d, c y n son la altura, la anchura, el número de canales de las imágenes y el número de observaciones de las imágenes, respectivamente."SSSCB"
Secuencias de vector

Matriz de c por s por n, donde c es el número de características de la secuencia, s es la longitud de la secuencia y n es el número de observaciones de la secuencia.

"CTB"
Secuencias de imágenes 2D

Arreglo de h por w por c por s por n, donde h, w y c corresponden a la altura, la anchura y el número de canales de la imagen, respectivamente, s es la longitud de la secuencia y n es el número de observaciones de la secuencia de la imagen.

"SSCTB"
Secuencias de imágenes 3D

Arreglo de h por w por d por c por s por n, donde h, w, d y c corresponden a la altura, la anchura, la profundidad y el número de canales de la imagen, respectivamente, s es la longitud de la secuencia y n es el número de observaciones de la secuencia de la imagen.

"SSSCTB"
CaracterísticasArreglo de c por n, donde c es el número de características y n es el número de observaciones."CB"

Vector de datos, especificado como un vector numérico de tipo de datos doble o simple, vector lógico u objeto de vector dlarray. Aquí, "vector" se refiere a cualquier arreglo con exactamente una dimensión no única.

Ejemplo: rand(100,1)

Etiqueta de dimensión, especificada como un solo carácter del tipo permitido para fmt.

Ejemplo: "S"

Ejemplo: 'S'

Argumentos de salida

expandir todo

Arreglo de deep learning, devuelto como un objeto dlarray. dlX permite la diferenciación automática empleando dlgradient y dlfeval. Si proporciona el argumento fmt, dlX tiene etiquetas.

  • Si X es un arreglo numérico o lógico, dlX contiene sus datos, posiblemente reordenados por el formato de los datos en fmt.

  • Si X es un gpuArray, los datos en dlX también se encuentran en la GPU. Los cálculos subsiguientes empleando dlX se llevan a cabo en la GPU.

Uso

Los formatos de datos dlarray permiten ejecutar las funciones en la tabla siguiente con la seguridad de que los datos tienen la forma adecuada.

FunciónOperaciónValida la dimensión de entradaAfecta al tamaño de la dimensión de entrada
avgpoolCalcula el promedio de los datos de entrada sobre regiones espaciales rectangulares (o cúbicas) ('S') móviles definidas por un parámetro de tamaño de grupo.'S''S'
batchnormPermite normalizar los valores contenidos en cada canal ('C') de los datos de entrada.'C' 
crossentropyPermite calcular la entropía cruzada entre las estimaciones y los valores objetivo, promediada por el tamaño de la dimensión del lote ('B').'S', 'C', 'B', 'T', 'U' (Las estimaciones y los arreglos objetivo deben tener el mismo tamaño).'S', 'C', 'B', 'T', 'U' (La salida es un escalar sin formato).
dlconvPermite calcular la convolución de deep learning de los datos de entrada utilizando un arreglo de filtros, coincidiendo con el número de dimensiones espaciales ('S') y (una función de las) dimensiones del canal ('C') de entrada y añadiendo un sesgo constante.'S', 'C''S', 'C'
dltranspconvPermite calcular la convolución traspuesta de deep learning de los datos de entrada utilizando un arreglo de filtros, coincidiendo con el número de dimensiones espaciales ('S') y (una función de las) dimensiones del canal ('C') de entrada y añadiendo un sesgo constante.'S', 'C''S', 'C'
fullyconnectPermite calcular una suma ponderada de los datos de entrada y aplicar un sesgo para la dimensión de cada lote ('B') y tiempo ('T').'S', 'C', 'U''S', 'C', 'B', 'T', 'U' (La salida siempre tiene el formato de datos 'CB', 'CT' o 'CTB').
gru

Permite aplicar un cálculo de unidad recurrente cerrada a los datos de entrada.

'S', 'C', 'T''C'
lstm

Permite aplicar un cálculo de memoria de corto-largo plazo a los datos de entrada.

'S', 'C', 'T''C'
maxpoolPermite calcular el máximo de los datos de entrada sobre regiones espaciales ('S') rectangulares en movimiento definidas por un parámetro de tamaño de grupo.'S''S'
maxunpoolPermite calcular la operación de desagrupar las dimensiones espaciales ('S').'S''S'
msePermite calcular el error cuadrático medio a la mitad entre las estimaciones y los valores objetivo, promediado por el tamaño de la dimensión del lote ('B').'S', 'C', 'B', 'T', 'U' (Las estimaciones y los arreglos objetivo deben tener el mismo tamaño).'S', 'C', 'B', 'T', 'U' (La salida es un escalar sin formato).
softmaxPermite aplicar la activación softmax a cada canal ('C') de los datos de entrada.'C' 

Estas dimensiones requieren que cada dimensión tenga una etiqueta. Puede especificar el formato de etiqueta de dimensión proporcionando la primera entrada como un dlarray con formato o utilizando el argumento de nombre-valor 'DataFormat' de la función.

dlarray aplica el orden de la etiqueta de dimensión de 'SCBTU'. Esta operación elimina la semántica ambigua en las operaciones que emparejan implícitamente las etiquetas entre entradas. dlarray también hace que las etiquetas de dimensión 'C', 'B' y 'T' solo puedan aparecer como máximo una vez cada una. Las funciones que usan estas etiquetas de dimensión aceptan como máximo una dimensión para cada etiqueta.

dlarray proporciona funciones para obtener el formato de datos asociado con un dlarray (dims), eliminar el formato de datos (stripdims) y obtener las dimensiones asociadas con etiquetas de dimensión concretas (finddim).

Para obtener más información sobre cómo funciona dlarray con formatos, consulte Notable dlarray Behaviors.

Funciones del objeto

avgpoolPool data to average values over spatial dimensions
batchnormNormalize data across all observations for each channel independently
crossentropyCross-entropy loss for classification tasks
dimsEtiquetas de dimensión de dlarray
dlconvDeep learning convolution
dlgradientCompute gradients for custom training loops using automatic differentiation
dltranspconvDeep learning transposed convolution
extractdataExtraer datos de dlarray
finddimFind dimensions with specified label
fullyconnectSum all weighted input data and apply a bias
gruGated recurrent unit
leakyreluApply leaky rectified linear unit activation
lstmMemoria de corto-largo plazo
maxpoolPool data to maximum value
maxunpoolUnpool the output of a maximum pooling operation
mseHalf mean squared error
reluAplicar la activación de unidad lineal rectificada
sigmoidAplicar la activación sigmoide
softmaxApply softmax activation to channel dimension
stripdimsRemove dlarray data format

Un dlarray también permite funciones para operaciones numéricas, de matrices y de otros tipos. Puede consultar la lista completa en List of Functions with dlarray Support.

Ejemplos

contraer todo

Cree un dlarray sin formato a partir de una matriz.

X = randn(3,5);
dlX = dlarray(X)
dlX = 
  3x5 dlarray

    0.5377    0.8622   -0.4336    2.7694    0.7254
    1.8339    0.3188    0.3426   -1.3499   -0.0631
   -2.2588   -1.3077    3.5784    3.0349    0.7147

Cree un dlarray que tenga un formato de datos que contenga las etiquetas de dimensión 'S' y 'C'.

X = randn(3,5);
dlX = dlarray(X,'SC')
dlX = 
  3(S) x 5(C) dlarray

    0.5377    0.8622   -0.4336    2.7694    0.7254
    1.8339    0.3188    0.3426   -1.3499   -0.0631
   -2.2588   -1.3077    3.5784    3.0349    0.7147

Si especifica las etiquetas de dimensión en el orden inverso, dlarray reordena implícitamente los datos subyacentes.

dlX = dlarray(X,'CS')
dlX = 
  5(S) x 3(C) dlarray

    0.5377    1.8339   -2.2588
    0.8622    0.3188   -1.3077
   -0.4336    0.3426    3.5784
    2.7694   -1.3499    3.0349
    0.7254   -0.0631    0.7147

Cree un vector de dlarray con la primera etiqueta de dimensión 'T'. La segunda etiqueta de dimensión, que dlarray crea de forma automática, es 'U'.

X = randn(6,1);
dlX = dlarray(X,'T')
dlX = 
  6(T) x 1(U) dlarray

    0.5377
    1.8339
   -2.2588
    0.8622
    0.3188
   -1.3077

Si especifica un vector fila para X, dlarray reordena implícitamente el resultado para que sea un vector columna.

X = X';
dlX = dlarray(X,'T')
dlX = 
  6(T) x 1(U) dlarray

    0.5377
    1.8339
   -2.2588
    0.8622
    0.3188
   -1.3077

Sugerencias

Capacidades ampliadas

Historial de versiones

Introducido en R2019b

expandir todo