| 679 | } |
| 680 | |
| 681 | void NELSTMLayerQuantized::prepare() |
| 682 | { |
| 683 | if (!_is_prepared) |
| 684 | { |
| 685 | _input_weights.allocator()->allocate(); |
| 686 | _concat_input_weights.run(); |
| 687 | |
| 688 | _input_to_input_weights->mark_as_unused(); |
| 689 | _input_to_forget_weights->mark_as_unused(); |
| 690 | _input_to_cell_weights->mark_as_unused(); |
| 691 | _input_to_output_weights->mark_as_unused(); |
| 692 | |
| 693 | _recurrent_weights.allocator()->allocate(); |
| 694 | _concat_recurrent_weights.run(); |
| 695 | _recurrent_to_input_weights->mark_as_unused(); |
| 696 | _recurrent_to_forget_weights->mark_as_unused(); |
| 697 | _recurrent_to_cell_weights->mark_as_unused(); |
| 698 | _recurrent_to_output_weights->mark_as_unused(); |
| 699 | |
| 700 | _weights.allocator()->allocate(); |
| 701 | _concat_weights.run(); |
| 702 | |
| 703 | _input_weights.mark_as_unused(); |
| 704 | _input_weights.allocator()->free(); |
| 705 | _recurrent_weights.mark_as_unused(); |
| 706 | _recurrent_weights.allocator()->free(); |
| 707 | |
| 708 | _weights_transposed.allocator()->allocate(); |
| 709 | _transpose_weights.run(); |
| 710 | |
| 711 | _weights.mark_as_unused(); |
| 712 | _weights.allocator()->free(); |
| 713 | |
| 714 | _bias.allocator()->allocate(); |
| 715 | _concat_bias.run(); |
| 716 | _input_gate_bias->mark_as_unused(); |
| 717 | _forget_gate_bias->mark_as_unused(); |
| 718 | _cell_bias->mark_as_unused(); |
| 719 | _output_gate_bias->mark_as_unused(); |
| 720 | |
| 721 | _is_prepared = true; |
| 722 | } |
| 723 | } |
| 724 | |
| 725 | } // namespace arm_compute |
nothing calls this directly
no test coverage detected