Define the flatten layer according to its parameters. To be used for the TimeDistributed layer. Type : polymorphic.
parameters : layer parameters.
data_format : enum, one of channels_last or channels_first (default) . The ordering of the dimensions in the inputs. channel_last corresponds to inputs with shape (batch, steps, features) while channels_first corresponds to inputs with shape (batch, features, steps).
Default value “channels_first”.
training? : boolean, whether the layer is in training mode (can store data for backward).
Default value “True”.
lda_coeff : float, defines the coefficient by which the loss derivative will be multiplied before being sent to the previous layer (since during the backward run we go backwards).
Default value “1”.
Flatten out : layer flatten architecture.
All these exemples are snippets PNG, you can drop these Snippet onto the block diagram and get the depicted code added to your VI (Do not forget to install HAIBAL library to run it).
Flatten layer inside TimeDistributed layer
1 – Generate a set of data
We generate an array of data of type single and shape [batch_size, time, channels, rows, cols] (channel first is default layer configuration).
In case of channel last layer configuration, shape is [batch_size, time, rows, cols, channels].
2 – Define graph
First, we define the first layer of the graph which is an Input layer (explicit input layer method). This layer is setup as an input array shaped [time = 6, channels = 7, rows = 5, cols = 3].
Then, we add to the graph the TimeDistributed layer which we setup with a Flatten layer using the define method.
3 – Run graph
We call the forward method and retrieve the result with the “Prediction 3D” method.
This method returns two variables, the first one is the layer information (cluster composed of the layer name, the graph index and the shape of the output layer) and the second one is the prediction with a shape of [batch_size, time, channels * rows * cols].