dlarray
Arreglo de deep learning para personalización
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 Retrain Neural Network to Classify New Images. Como alternativa, puede crear y entrenar redes neuronales desde cero usando las funciones trainnet
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 Entrenar una red con un bucle de entrenamiento personalizado.
Si la función trainnet
no proporciona la función de pérdida que necesita para la tarea, puede especificar una función de pérdida personalizada para trainnet
como identificador de función. En el caso de las funciones de pérdida que requieren más entradas que las predicciones y los objetivos (por ejemplo, funciones de pérdida que requieren acceso a la red neuronal o entradas adicionales), entrene el modelo mediante un bucle de entrenamiento personalizado. Para obtener más información, consulte Entrenar una red con un bucle de entrenamiento personalizado.
Si Deep Learning Toolbox™ no proporciona las capas que necesita para la tarea, puede crear una capa personalizada. Para obtener más información, consulte Definir capas de deep learning personalizadas. Para los modelos que no se pueden especificar como redes de capas, puede definir el modelo como una función. Para obtener más información, consulte Train Network Using Model Function.
Para obtener más información sobre qué método de entrenamiento usar para cada tarea, consulte Train Deep Learning Model in MATLAB.
Creación
Descripción
formatea los datos de dlX
= dlarray(X
,fmt
)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.
Argumentos de entrada
Argumentos de salida
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ón | Operación | Valida la dimensión de entrada | Afecta al tamaño de la dimensión de entrada |
---|---|---|---|
avgpool | Calcula 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' |
batchnorm | Permite normalizar los valores contenidos en cada canal ('C' ) de los datos de entrada. | 'C' | |
crossentropy | Permite 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). |
dlconv | Permite 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' |
dltranspconv | Permite 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' |
fullyconnect | Permite 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' |
maxpool | Permite 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' |
maxunpool | Permite calcular la operación de desagrupar las dimensiones espaciales ('S' ). | 'S' | 'S' |
mse | Permite 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). |
softmax | Permite 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
avgpool | Pool data to average values over spatial dimensions |
batchnorm | Normalize data across all observations for each channel independently |
crossentropy | Cross-entropy loss for classification tasks |
dims | Etiquetas de dimensión de dlarray |
dlconv | Deep learning convolution |
dlgradient | Compute gradients for custom training loops using automatic differentiation |
dltranspconv | Deep learning transposed convolution |
extractdata | Extraer datos de dlarray |
finddim | Find dimensions with specified label |
fullyconnect | Sum all weighted input data and apply a bias |
gru | Gated recurrent unit |
leakyrelu | Apply leaky rectified linear unit activation |
lstm | Memoria de corto-largo plazo |
maxpool | Pool data to maximum value |
maxunpool | Unpool the output of a maximum pooling operation |
mse | Error cuadrático medio dividido |
relu | Aplicar la activación de unidad lineal rectificada |
sigmoid | Aplicar la activación sigmoide |
softmax | Apply softmax activation to channel dimension |
stripdims | Remove 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
Sugerencias
Una llamada de
dlgradient
debe estar dentro de una función. Para obtener un valor numérico de un gradiente, debe evaluar la función utilizandodlfeval
y el argumento de la función debe ser undlarray
. Consulte Use Automatic Differentiation In Deep Learning Toolbox.Para permitir la evaluación correcta de los gradientes,
dlfeval
debe llamar a funciones que solo usen funciones compatibles condlarray
. Consulte List of Functions with dlarray Support.