diff options
author | Madeleine Dunn <madeleine.dunn@arm.com> | 2023-11-13 15:40:21 +0000 |
---|---|---|
committer | Madeleine Dunn <madeleine.dunn@arm.com> | 2024-04-03 16:33:39 +0100 |
commit | 17813ba5be09f0e11fc0748afa4ccf2da02881b6 (patch) | |
tree | 8ec5f3ce3501b86e9398cf5af6f7bd9876685512 /tests | |
parent | 2a2a910d6d7cc3e7555b0a3c1ba458a4065c41ae (diff) | |
download | mlia-17813ba5be09f0e11fc0748afa4ccf2da02881b6.tar.gz |
feat: Implement fp32 sparsity 2:4 rewrite
- Update the existing placeholder with code to prune the given model
Resolves: MLIA-1002
Signed-off-by: Madeleine Dunn <madeleine.dunn@arm.com>
Change-Id: I76b0e0bfe81be5e57d518cd7bb588eef76a11641
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_nn_rewrite_core_rewrite.py | 16 | ||||
-rw-r--r-- | tests/test_nn_rewrite_core_train.py | 9 |
2 files changed, 23 insertions, 2 deletions
diff --git a/tests/test_nn_rewrite_core_rewrite.py b/tests/test_nn_rewrite_core_rewrite.py index 1d0100a..e614cad 100644 --- a/tests/test_nn_rewrite_core_rewrite.py +++ b/tests/test_nn_rewrite_core_rewrite.py @@ -39,6 +39,20 @@ def test_rewrite() -> None: @pytest.mark.parametrize( + "rewrite_name, callbacks_length", + [ + ("fully-connected", 0), + ("fully-connected-sparsity24", 1), + ], +) +def test_rewrite_selection(rewrite_name: str, callbacks_length: int) -> None: + """Test that the correct rewrite class is instantiated.""" + rewrite = RewritingOptimizer.registry.items[rewrite_name] + assert rewrite.name == rewrite_name + assert len(rewrite.training_callbacks()) == callbacks_length + + +@pytest.mark.parametrize( "rewrite_name, expected_error", [ ("fully-connected", does_not_raise()), @@ -89,7 +103,7 @@ def test_rewriting_optimizer( def test_register_rewrite_function() -> None: - """Test adding rewrite functions and verify the are reported via the registry.""" + """Test adding rewrite functions and verify they are reported via the registry.""" registry = RewriteRegistry() rewrite1 = Rewrite("r1", cast(RewriteCallable, lambda: 1)) diff --git a/tests/test_nn_rewrite_core_train.py b/tests/test_nn_rewrite_core_train.py index 624c5ed..34b9543 100644 --- a/tests/test_nn_rewrite_core_train.py +++ b/tests/test_nn_rewrite_core_train.py @@ -14,6 +14,7 @@ import pytest import tensorflow as tf from keras.api._v2 import keras # Temporary workaround for now: MLIA-1107 +from mlia.nn.rewrite.core.rewrite import DynamicallyLoadedRewrite from mlia.nn.rewrite.core.train import augment_fn_twins from mlia.nn.rewrite.core.train import AUGMENTATION_PRESETS from mlia.nn.rewrite.core.train import LearningRateSchedule @@ -53,12 +54,18 @@ def check_train( """Test the train() function.""" with TemporaryDirectory() as tmp_dir: output_file = Path(tmp_dir, "out.tflite") + mock_rewrite = DynamicallyLoadedRewrite( + name="replace", + function_name=( + "tests.test_nn_rewrite_core_train.replace_fully_connected_with_conv" + ), + ) result = train( source_model=str(tflite_model), unmodified_model=str(tflite_model) if use_unmodified_model else None, output_model=str(output_file), input_tfrec=str(tfrecord), - replace_fn=replace_fully_connected_with_conv, + rewrite=mock_rewrite, input_tensors=["sequential/flatten/Reshape"], output_tensors=["StatefulPartitionedCall:0"], train_params=train_params, |