Issue with LSTM OutputMode='last' in MATLAB Deep Learning HDL Toolbox

9 visualizaciones (últimos 30 días)
Hi all!
I am profiling the performance of the MATLAB Deep Learning HDL Toolbox for an LSTM-based model trained on the IMDb dataset.
I leave below the code I am running:
% Initialize model (code generated by the Deep Network Designer App after importing the tensorflow model)
params = load("params_2025_01_22__11_31_51.mat");
net = dlnetwork;
tempNet = [
sequenceInputLayer(1,"Name","embedding_input","MinLength", 235)
lstmLayer(32,"Name","lstm","outputMode", "last", "BiasInitializer","narrow-normal","InputWeightsInitializer","narrow-normal","RecurrentWeightsInitializer","narrow-normal")
fullyConnectedLayer(1,"Name","dense","Bias",params.dense.Bias,"Weights",params.dense.Weights)
sigmoidLayer("Name","dense_sigmoid")
];
net = addLayers(net,tempNet);
% clean up helper variable
clear tempNet;
net = initialize(net);
% Initialize dlhdl processor with default configuration
hPC = dlhdl.ProcessorConfig
% Optimize configuration for the target network
optimizeConfigurationForNetwork(hPC, net)
hPC.estimateResources
hPC.estimatePerformance(net)
I noticed that the "outputMode='last'" property of the LSTM layer generates the following error when customizing the processor for the target network:
"Error using dnnfpga.macros.verifyRNNLayerParameters
The layer 'lstm' has an OutputMode of 'last' which is not supported.
Error in dnnfpga.macros.createLSTMLayerNet
Error in dnnfpga.macros.Macros.createNet
Error in dnnfpga.compiler.optimizations.preprocessNetworkForDLP
Error in dnnfpga.compiler.cnn5ProcessorFrontend/runFrontend
Error in dnnfpga.compiler.cnn5ProcessorFrontend/doit
Error in dnnfpga.config.CNN5ProcessorConfig/optimizeConfigurationForNetwork
Error in lstm_imdb_test (line 26)
optimizeConfigurationForNetwork(hPC, net)"
I temporarly switched this property to 'sequence' and it seems working.
Please, can you help me find any explanation for this problem?
Thanks in advance for your help!

Respuesta aceptada

Wang Chen
Wang Chen el 28 de En. de 2025
Hi Tommaso,
The "OutputMode" property = "last" is not supported in Deep Learning HDL Toolbox yet.
"When generating code for a network using this layer, these limitations apply:
  • The input must be of single data type.
  • The OutputMode property must be set to sequence."
As a work-around, you could use "OutputMode" property = "sequence", and pick out last time step's output from the complete output sequences.
Thanks,
Wang

Más respuestas (0)

Categorías

Más información sobre FPGA, ASIC, and SoC Development en Help Center y File Exchange.

Productos


Versión

R2024a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by