Skip to content

Commit

Permalink
[quant][refactor tests] Move quantization tests into subfolders (pyto…
Browse files Browse the repository at this point in the history
…rch#59007)

Summary:
Pull Request resolved: pytorch#59007

Create folders for each test category and move the tests.
Will follow-up with a cleanup of test_quantization.py

Test Plan:
python test/test_quantization.py

Imported from OSS

Reviewed By: HDCharles

Differential Revision: D28718742

fbshipit-source-id: 4c2dbbf36db35d289df9708565b7e88e2381ff04
  • Loading branch information
supriyar authored and facebook-github-bot committed May 27, 2021
1 parent e146ed2 commit 74089a0
Show file tree
Hide file tree
Showing 26 changed files with 52 additions and 55 deletions.
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ def get_filenames(self, subname):
munged_id = remove_prefix(self.id(), module_id + ".")
test_file = os.path.realpath(sys.modules[module_id].__file__)
base_name = os.path.join(os.path.dirname(test_file),
"serialized",
"../serialized",
munged_id)

subname_output = ""
Expand Down
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
TEST_WITH_UBSAN,
)

class TestQuantizedFunctional(QuantizationTestCase):
class TestQuantizedFunctionalOps(QuantizationTestCase):
def test_relu_api(self):
X = torch.arange(-5, 5, dtype=torch.float)
scale = 2.0
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Empty file.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Empty file.
File renamed without changes.
File renamed without changes.
Empty file.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion test/test_determination.py
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ def test_test_file(self):
["distributed/rpc/test_process_group_agent"],
)
self.assertEqual(
self.determined_tests(["test/quantization/test_quantize_eager_ptq.py"]),
self.determined_tests(["test/quantization/eager/test_quantize_eager_ptq.py"]),
["test_quantization"],
)

Expand Down
101 changes: 49 additions & 52 deletions test/test_quantization.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,96 +3,93 @@
from torch.testing._internal.common_utils import run_tests

# Quantized Tensor
from quantization.test_quantized_tensor import TestQuantizedTensor # noqa: F401
from quantization.core.test_quantized_tensor import TestQuantizedTensor # noqa: F401
# Quantized Op
# TODO: merge test cases in quantization.test_quantized
from quantization.test_quantized_op import TestQuantizedOps # noqa: F401
from quantization.test_quantized_op import TestQNNPackOps # noqa: F401
from quantization.test_quantized_op import TestQuantizedLinear # noqa: F401
from quantization.test_quantized_op import TestQuantizedConv # noqa: F401
from quantization.test_quantized_op import TestDynamicQuantizedLinear # noqa: F401
from quantization.test_quantized_op import TestComparatorOps # noqa: F401
from quantization.test_quantized_op import TestPadding # noqa: F401
from quantization.test_quantized_op import TestQuantizedEmbeddingOps # noqa: F401
from quantization.test_quantized_op import TestDynamicQuantizedRNNOp # noqa: F401

# Quantized Functional
from quantization.test_quantized_functional import TestQuantizedFunctional # noqa: F401

# Quantized Module
from quantization.test_quantized_module import TestStaticQuantizedModule # noqa: F401
from quantization.test_quantized_module import TestDynamicQuantizedModule # noqa: F401
from quantization.core.test_quantized_op import TestQuantizedOps # noqa: F401
from quantization.core.test_quantized_op import TestQNNPackOps # noqa: F401
from quantization.core.test_quantized_op import TestQuantizedLinear # noqa: F401
from quantization.core.test_quantized_op import TestQuantizedConv # noqa: F401
from quantization.core.test_quantized_op import TestDynamicQuantizedLinear # noqa: F401
from quantization.core.test_quantized_op import TestComparatorOps # noqa: F401
from quantization.core.test_quantized_op import TestPadding # noqa: F401
from quantization.core.test_quantized_op import TestQuantizedEmbeddingOps # noqa: F401
from quantization.core.test_quantized_op import TestDynamicQuantizedRNNOp # noqa: F401
from quantization.core.test_quantized_functional import TestQuantizedFunctionalOps # noqa: F401
from quantization.core.test_quantized_module import TestStaticQuantizedModule # noqa: F401
from quantization.core.test_quantized_module import TestDynamicQuantizedModule # noqa: F401


# Quantization specific fusion passes
from quantization.test_fusion_passes import TestFusionPasses # noqa: F401
from quantization.jit.test_fusion_passes import TestFusionPasses # noqa: F401

# Module
from quantization.test_workflow_module import TestFakeQuantize # noqa: F401
from quantization.test_workflow_module import TestObserver # noqa: F401
from quantization.core.test_workflow_module import TestFakeQuantize # noqa: F401
from quantization.core.test_workflow_module import TestObserver # noqa: F401
# TODO: merge with TestObserver
# TODO: some tests belong to test_quantize.py, e.g. test_record_observer
from quantization.test_workflow_module import TestRecordHistogramObserver # noqa: F401
from quantization.test_workflow_module import TestHistogramObserver # noqa: F401
from quantization.test_workflow_module import TestDistributed # noqa: F401
from quantization.core.test_workflow_module import TestRecordHistogramObserver # noqa: F401
from quantization.core.test_workflow_module import TestHistogramObserver # noqa: F401
from quantization.core.test_workflow_module import TestDistributed # noqa: F401

from quantization.test_workflow_ops import TestFakeQuantizeOps # noqa: F401
from quantization.core.test_workflow_ops import TestFakeQuantizeOps # noqa: F401

# Workflow
# 1. Eager mode post training quantization
from quantization.test_quantize_eager_ptq import TestPostTrainingStatic # noqa: F401
from quantization.test_quantize_eager_ptq import TestPostTrainingDynamic # noqa: F401
from quantization.test_quantize_eager_ptq import TestEagerModeActivationOps # noqa: F401
from quantization.test_quantize_eager_ptq import TestFunctionalModule # noqa: F401
from quantization.test_quantize_eager_ptq import TestQuantizeONNXExport # noqa: F401
from quantization.eager.test_quantize_eager_ptq import TestPostTrainingStatic # noqa: F401
from quantization.eager.test_quantize_eager_ptq import TestPostTrainingDynamic # noqa: F401
from quantization.eager.test_quantize_eager_ptq import TestEagerModeActivationOps # noqa: F401
from quantization.eager.test_quantize_eager_ptq import TestFunctionalModule # noqa: F401
from quantization.eager.test_quantize_eager_ptq import TestQuantizeONNXExport # noqa: F401

# Eager mode quantization aware training
from quantization.test_quantize_eager_qat import TestQuantizationAwareTraining # noqa: F401
from quantization.test_quantize_eager_qat import TestQATActivationOps # noqa: F401
from quantization.test_quantize_eager_qat import TestConvBNQATModule # noqa: F401
from quantization.eager.test_quantize_eager_qat import TestQuantizationAwareTraining # noqa: F401
from quantization.eager.test_quantize_eager_qat import TestQATActivationOps # noqa: F401
from quantization.eager.test_quantize_eager_qat import TestConvBNQATModule # noqa: F401

# Eager mode fusion passes
from quantization.test_fusion import TestFusion # noqa: F401
from quantization.eager.test_fusion import TestFusion # noqa: F401

from quantization.test_model_numerics import TestModelNumericsEager # noqa: F401
from quantization.eager.test_model_numerics import TestModelNumericsEager # noqa: F401

from quantization.test_deprecated_jit_quant import TestDeprecatedJitQuantized # noqa: F401
from quantization.jit.test_deprecated_jit_quant import TestDeprecatedJitQuantized # noqa: F401

# 2. Graph mode quantization
from quantization.test_quantize_jit import TestQuantizeJit # noqa: F401
from quantization.test_quantize_jit import TestQuantizeJitPasses # noqa: F401
from quantization.test_quantize_jit import TestQuantizeJitOps # noqa: F401
from quantization.test_quantize_jit import TestQuantizeDynamicJitPasses # noqa: F401
from quantization.test_quantize_jit import TestQuantizeDynamicJitOps # noqa: F401
from quantization.jit.test_quantize_jit import TestQuantizeJit # noqa: F401
from quantization.jit.test_quantize_jit import TestQuantizeJitPasses # noqa: F401
from quantization.jit.test_quantize_jit import TestQuantizeJitOps # noqa: F401
from quantization.jit.test_quantize_jit import TestQuantizeDynamicJitPasses # noqa: F401
from quantization.jit.test_quantize_jit import TestQuantizeDynamicJitOps # noqa: F401

# 3. GraphModule based graph mode quantization
try:
from quantization.test_quantize_fx import TestFuseFx # noqa: F401
from quantization.test_quantize_fx import TestQuantizeFx # noqa: F401
from quantization.test_quantize_fx import TestQuantizeFxOps # noqa: F401
from quantization.test_quantize_fx import TestQuantizeFxModels # noqa: F401
from quantization.fx.test_quantize_fx import TestFuseFx # noqa: F401
from quantization.fx.test_quantize_fx import TestQuantizeFx # noqa: F401
from quantization.fx.test_quantize_fx import TestQuantizeFxOps # noqa: F401
from quantization.fx.test_quantize_fx import TestQuantizeFxModels # noqa: F401
except ImportError:
# In FBCode we separate FX out into a separate target for the sake of dev
# velocity. These are covered by a separate test target `quantization_fx`
pass

# Tooling: numeric_suite
from quantization.test_numeric_suite_eager import TestEagerModeNumericSuite # noqa: F401
from quantization.eager.test_numeric_suite_eager import TestEagerModeNumericSuite # noqa: F401

try:
from quantization.test_numeric_suite_fx import TestFXGraphMatcher # noqa: F401
from quantization.test_numeric_suite_fx import TestFXGraphMatcherModels # noqa: F401
from quantization.test_numeric_suite_fx import TestFXNumericSuiteCoreAPIs # noqa: F401
from quantization.test_numeric_suite_fx import TestFXNumericSuiteCoreAPIsModels # noqa: F401
from quantization.fx.test_numeric_suite_fx import TestFXGraphMatcher # noqa: F401
from quantization.fx.test_numeric_suite_fx import TestFXGraphMatcherModels # noqa: F401
from quantization.fx.test_numeric_suite_fx import TestFXNumericSuiteCoreAPIs # noqa: F401
from quantization.fx.test_numeric_suite_fx import TestFXNumericSuiteCoreAPIsModels # noqa: F401
except ImportError:
pass

# Backward Compatibility
from quantization.test_backward_compatibility import TestSerialization # noqa: F401
from quantization.bc.test_backward_compatibility import TestSerialization # noqa: F401

# Equalization
from quantization.test_equalize_eager import TestEqualizeEager # noqa: F401
from quantization.eager.test_equalize_eager import TestEqualizeEager # noqa: F401
# Bias Correction
from quantization.test_bias_correction_eager import TestBiasCorrection # noqa: F401
from quantization.eager.test_bias_correction_eager import TestBiasCorrection # noqa: F401

if __name__ == '__main__':
run_tests()

0 comments on commit 74089a0

Please sign in to comment.