| 721 | } |
| 722 | |
| 723 | void CLLSTMLayerQuantized::prepare() |
| 724 | { |
| 725 | if (!_is_prepared) |
| 726 | { |
| 727 | _input_weights.allocator()->allocate(); |
| 728 | _concat_input_weights.run(); |
| 729 | |
| 730 | _input_to_input_weights->mark_as_unused(); |
| 731 | _input_to_forget_weights->mark_as_unused(); |
| 732 | _input_to_cell_weights->mark_as_unused(); |
| 733 | _input_to_output_weights->mark_as_unused(); |
| 734 | |
| 735 | _recurrent_weights.allocator()->allocate(); |
| 736 | _concat_recurrent_weights.run(); |
| 737 | _recurrent_to_input_weights->mark_as_unused(); |
| 738 | _recurrent_to_forget_weights->mark_as_unused(); |
| 739 | _recurrent_to_cell_weights->mark_as_unused(); |
| 740 | _recurrent_to_output_weights->mark_as_unused(); |
| 741 | |
| 742 | _weights.allocator()->allocate(); |
| 743 | _concat_weights.run(); |
| 744 | |
| 745 | _input_weights.mark_as_unused(); |
| 746 | _input_weights.allocator()->free(); |
| 747 | _recurrent_weights.mark_as_unused(); |
| 748 | _recurrent_weights.allocator()->free(); |
| 749 | |
| 750 | _weights_transposed.allocator()->allocate(); |
| 751 | _transpose_weights.run(); |
| 752 | |
| 753 | _weights.mark_as_unused(); |
| 754 | _weights.allocator()->free(); |
| 755 | |
| 756 | _bias.allocator()->allocate(); |
| 757 | _concat_bias.run(); |
| 758 | _input_gate_bias->mark_as_unused(); |
| 759 | _forget_gate_bias->mark_as_unused(); |
| 760 | _cell_bias->mark_as_unused(); |
| 761 | _output_gate_bias->mark_as_unused(); |
| 762 | |
| 763 | _is_prepared = true; |
| 764 | } |
| 765 | } |
| 766 | |
| 767 | } // namespace arm_compute |
nothing calls this directly
no test coverage detected