CMSIS-NN
CMSIS NN Software Library
|
Functions | |
arm_cmsis_nn_status | arm_lstm_unidirectional_s16_s8 (cmsis_nn_lstm_context *scratch_buffers, const int8_t *input_data, const cmsis_nn_lstm_dims *lstm_dims, const int8_t *in_to_in_weights, const int8_t *in_to_forget_weights, const int8_t *in_to_cell_weights, const int8_t *in_to_out_weights, const int8_t *recurrent_to_in_weights, const int8_t *recurrent_to_forget_weights, const int8_t *recurrent_to_cell_weights, const int8_t *recurrent_to_out_weights, const int16_t *cell_to_in_weights, const int16_t *cell_to_forget_weights, const int16_t *cell_to_out_weights, const int8_t *projection_weights, const cmsis_nn_lstm_params *lstm, int8_t *output_state, int16_t *cell_state, int8_t *output_data) |
LSTM unidirectional function with 8 bit input and output and 16 bit gate output Peephole connections, projection, clipping, combined input/forget gate and layer normalization are not supported. More... | |
arm_cmsis_nn_status arm_lstm_unidirectional_s16_s8 | ( | cmsis_nn_lstm_context * | scratch_buffers, |
const int8_t * | input_data, | ||
const cmsis_nn_lstm_dims * | lstm_dims, | ||
const int8_t * | input_to_input_weights, | ||
const int8_t * | input_to_forget_weights, | ||
const int8_t * | input_to_cell_weights, | ||
const int8_t * | input_to_output_weights, | ||
const int8_t * | recurrent_to_input_weights, | ||
const int8_t * | recurrent_to_forget_weights, | ||
const int8_t * | recurrent_to_cell_weights, | ||
const int8_t * | recurrent_to_output_weights, | ||
const int16_t * | cell_to_input_weights, | ||
const int16_t * | cell_to_forget_weights, | ||
const int16_t * | cell_to_output_weights, | ||
const int8_t * | projection_weights, | ||
const cmsis_nn_lstm_params * | lstm, | ||
int8_t * | output_state, | ||
int16_t * | cell_state, | ||
int8_t * | output_data | ||
) |
[in] | scratch_buffers | Struct containing scratch buffers Expected size for each scratch buffer is lstm_dims->num_batches * lstm_dims->num_outputs. |
[in] | input_data | Pointer to input data |
[in] | lstm_dims | LSTM input parameters related to dimensions |
[in] | input_to_input_weights | Input to input weights |
[in] | input_to_forget_weights | Input to forget weights |
[in] | input_to_cell_weights | Input to cell weights |
[in] | input_to_output_weights | Input to output weights |
[in] | recurrent_to_input_weights | Recurrent to input weights |
[in] | recurrent_to_forget_weights | Recurrent to forget weights |
[in] | recurrent_to_cell_weights | Recurrent to cell weights |
[in] | recurrent_to_output_weights | Recurrent to output weights |
[in] | cell_to_input_weights | Cell to input weights. Not used. |
[in] | cell_to_forget_weights | Cell to forget weights. Not used. |
[in] | cell_to_output_weights | Cell to output weights. Not used. |
[in] | projection_weights | Projection weights. Not used. |
[in] | lstm | LSTM parameters. See struct declaration |
[in] | output_state | Pointer to (recurrent) output state |
[in] | cell_state | Pointer to cell state |
[in] | output_data | Pointer to output state |
1 Input to input weight can not be nullptr. Otherwise nullptr for combined input/forgat gate. 2 Cell weights are not used and should be nullptr. Otherwise needed for peephole connections. 3 Projection weight is not used and should be nullpr. Otherwise needed for projection.
ARM_CMSIS_NN_SUCCESS