dlarray
Deep learning array for custom training loops
Description
A deep learning array stores data with optional data format labels for custom training loops, and enables functions to compute and use derivatives through automatic differentiation.
Tip
For most deep learning tasks, you can use a pretrained network and adapt it to your own data. For an example showing how to use transfer learning to retrain a convolutional neural network to classify a new set of images, seeTrain Deep Learning Network to Classify New Images. Alternatively, you can create and train networks from scratch usinglayerGraph
objects with thetrainNetwork
andtrainingOptions
functions.
If thetrainingOptions
function does not provide the training options that you need for your task, then you can create a custom training loop using automatic differentiation. To learn more, seeDefine Deep Learning Network for Custom Training Loops.
Creation
Description
Input Arguments
Output Arguments
Usage
dlarray
data formats enable you to execute the functions in the following table with assurance that the data has the appropriate shape.
Function | Operation | Validates Input Dimension | Affects Size of Input Dimension |
---|---|---|---|
avgpool |
Compute the average of the input data over moving rectangular (or cuboidal) spatial ('S' ) regions defined by a pool size parameter. |
'S' |
'S' |
batchnorm |
Normalize the values contained in each channel ('C' ) of the input data. |
'C' |
|
crossentropy |
Compute the cross-entropy between estimates and target values, averaged by the size of the batch ('B' ) dimension. |
'S' ,'C' ,'B' ,'T' ,'U' (Estimates and target arrays must have the same sizes.) |
'S' ,'C' ,'B' ,'T' ,'U' (Output is an unformatted scalar.) |
dlconv |
Compute the deep learning convolution of the input data using an array of filters, matching the number of spatial ('S' ) and (a function of the) channel ('C' ) dimensions of the input, and adding a constant bias. |
'S' ,'C' |
'S' ,'C' |
dltranspconv |
Compute the deep learning transposed convolution of the input data using an array of filters, matching the number of spatial ('S' ) and (a function of the) channel ('C' ) dimensions of the input, and adding a constant bias. |
'S' ,'C' |
'S' ,'C' |
fullyconnect |
Compute a weighted sum of the input data and apply a bias for each batch ('B' ) and time ('T' ) dimension. |
'S' ,'C' ,'U' |
'S' ,'C' ,'B' ,'T' ,'U' (Output always has data format'CB' ,'CT' , or'CTB' .) |
gru |
Apply a gated recurrent unit calculation to the input data. |
'S' ,'C' ,'T' |
'C' |
lstm |
Apply a long short-term memory calculation to the input data. |
'S' ,'C' ,'T' |
'C' |
maxpool |
Compute the maximum of the input data over moving rectangular spatial ('S' ) regions defined by a pool size parameter. |
'S' |
'S' |
maxunpool |
Compute the unpooling operation over the spatial ('S' ) dimensions. |
'S' |
'S' |
mse |
Compute the half mean squared error between estimates and target values, averaged by the size of the batch ('B' ) dimension. |
'S' ,'C' ,'B' ,'T' ,'U' (Estimates and target arrays must have the same sizes.) |
'S' ,'C' ,'B' ,'T' ,'U' (Output is an unformatted scalar.) |
softmax |
Apply the softmax activation to each channel ('C' ) of the input data. |
'C' |
这些功能需要每个维度有label. You can specify the dimension label format by providing the first input as a formatteddlarray
, or by using the'DataFormat'
name-value argument of the function.
dlarray
enforces the dimension label ordering of'SCBTU'
. This enforcement eliminates ambiguous semantics in operations which implicitly match labels between inputs.dlarray
also enforces that the dimension labels'C'
,'B'
, and'T'
can each appear at most once. The functions that use these dimension labels accept at most one dimension for each label.
dlarray
provides functions for obtaining the data format associated with adlarray
(dims
), removing the data format (stripdims
), and obtaining the dimensions associated with specific dimension labels (finddim
).
For more information on how adlarray
behaves with formats, seeNotable dlarray Behaviors.
Object Functions
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 |
Dimension labels ofdlarray |
dlconv |
Deep learning convolution |
dlgradient |
Compute gradients for custom training loops using automatic differentiation |
dltranspconv |
Deep learning transposed convolution |
extractdata |
Extract data fromdlarray |
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 |
Long short-term memory |
maxpool |
Pool data to maximum value |
maxunpool |
Unpool the output of a maximum pooling operation |
mse |
Half mean squared error |
relu |
Apply rectified linear unit activation |
sigmoid |
Apply sigmoid activation |
softmax |
Apply softmax activation to channel dimension |
stripdims |
Removedlarray data format |
Adlarray
also allows functions for numeric, matrix, and other operations. See the full list inList of Functions with dlarray Support.
Examples
Tips
A
dlgradient
call must be inside a function. To obtain a numeric value of a gradient, you must evaluate the function usingdlfeval
, and the argument to the function must be adlarray
. SeeUse Automatic Differentiation In Deep Learning Toolbox.To enable the correct evaluation of gradients,
dlfeval
must call functions that use only supported functions fordlarray
. SeeList of Functions with dlarray Support.