Browse Source

feat(traced_module): move traced_module out of the experimental folder

GitOrigin-RevId: 36c76b5277
release-1.6
Megvii Engine Team 3 years ago
parent
commit
e5217db9f9
22 changed files with 62 additions and 65 deletions
  1. +0
    -1
      imperative/python/megengine/__init__.py
  2. +0
    -1
      imperative/python/megengine/experimental/__init__.py
  3. +1
    -1
      imperative/python/megengine/traced_module/__init__.py
  4. +7
    -8
      imperative/python/megengine/traced_module/expr.py
  5. +11
    -3
      imperative/python/megengine/traced_module/fake_quant.py
  6. +5
    -6
      imperative/python/megengine/traced_module/module_tracer.py
  7. +3
    -4
      imperative/python/megengine/traced_module/node.py
  8. +7
    -8
      imperative/python/megengine/traced_module/pytree.py
  9. +3
    -3
      imperative/python/megengine/traced_module/serialization.py
  10. +12
    -13
      imperative/python/megengine/traced_module/traced_module.py
  11. +1
    -2
      imperative/python/megengine/traced_module/utils.py
  12. +1
    -1
      imperative/python/test/integration/test_converge.py
  13. +1
    -1
      imperative/python/test/integration/test_converge_with_gradient_clip.py
  14. +1
    -1
      imperative/python/test/integration/test_trace_dump.py
  15. +1
    -4
      imperative/python/test/unit/core/test_serialization.py
  16. +1
    -1
      imperative/python/test/unit/module/test_module.py
  17. +1
    -1
      imperative/python/test/unit/traced_module/test_haoruitao.py
  18. +1
    -1
      imperative/python/test/unit/traced_module/test_jit_trace.py
  19. +2
    -2
      imperative/python/test/unit/traced_module/test_modification.py
  20. +1
    -1
      imperative/python/test/unit/traced_module/test_serialization.py
  21. +1
    -1
      imperative/python/test/unit/traced_module/test_trace_module.py
  22. +1
    -1
      imperative/python/test/unit/traced_module/test_wujianan.py

+ 0
- 1
imperative/python/megengine/__init__.py View File

@@ -130,4 +130,3 @@ import megengine.optimizer
import megengine.quantization import megengine.quantization
import megengine.random import megengine.random
import megengine.utils import megengine.utils
import megengine.experimental

+ 0
- 1
imperative/python/megengine/experimental/__init__.py View File

@@ -6,5 +6,4 @@
# Unless required by applicable law or agreed to in writing, # Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an # software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
from . import traced_module
from .weight_scaler import get_scaled_model from .weight_scaler import get_scaled_model

imperative/python/megengine/experimental/traced_module/__init__.py → imperative/python/megengine/traced_module/__init__.py View File

@@ -6,7 +6,7 @@
# software distributed under the License is distributed on an # software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.


from ...core._imperative_rt.core2 import set_cpp_apply_module_trace
from ..core._imperative_rt.core2 import set_cpp_apply_module_trace
from .traced_module import ( from .traced_module import (
TracedModule, TracedModule,
_register_all_builtin_module, _register_all_builtin_module,

imperative/python/megengine/experimental/traced_module/expr.py → imperative/python/megengine/traced_module/expr.py View File

@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# MegEngine is Licensed under the Apache License, Version 2.0 (the "License") # MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
# #
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved. # Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
@@ -14,13 +13,13 @@ import inspect
import re import re
from typing import Callable, Dict, List from typing import Callable, Dict, List


from ...core._imperative_rt import OpDef
from ...core._imperative_rt.core2 import Tensor as RawTensor
from ...core._imperative_rt.core2 import apply, set_module_tracing, unset_module_tracing
from ...core.ops.builtin import FakeQuant
from ...core.ops.special import Const
from ...module import Module
from ...tensor import Parameter, Tensor
from ..core._imperative_rt import OpDef
from ..core._imperative_rt.core2 import Tensor as RawTensor
from ..core._imperative_rt.core2 import apply, set_module_tracing, unset_module_tracing
from ..core.ops.builtin import FakeQuant
from ..core.ops.special import Const
from ..module import Module
from ..tensor import Parameter, Tensor
from .module_tracer import active_module_tracer, module_tracer from .module_tracer import active_module_tracer, module_tracer
from .node import ModuleNode, Node, NodeMixin, TensorNode from .node import ModuleNode, Node, NodeMixin, TensorNode
from .pytree import ArgsIndex, TreeDef, _is_const_leaf, _is_leaf, tree_flatten from .pytree import ArgsIndex, TreeDef, _is_const_leaf, _is_leaf, tree_flatten

imperative/python/megengine/experimental/traced_module/fake_quant.py → imperative/python/megengine/traced_module/fake_quant.py View File

@@ -1,9 +1,17 @@
# MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
#
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

from copy import deepcopy from copy import deepcopy
from typing import Union from typing import Union


from ...core.tensor.dtype import QuantDtypeMeta
from ...quantization.fake_quant import QParamsModuleMixin, _FakeQuantize
from ...quantization.utils import QParams, QuantMode, fake_quant_tensor
from ..core.tensor.dtype import QuantDtypeMeta
from ..quantization.fake_quant import QParamsModuleMixin, _FakeQuantize
from ..quantization.utils import QParams, QuantMode, fake_quant_tensor




class FakeQuantize(_FakeQuantize, QParamsModuleMixin): class FakeQuantize(_FakeQuantize, QParamsModuleMixin):

imperative/python/megengine/experimental/traced_module/module_tracer.py → imperative/python/megengine/traced_module/module_tracer.py View File

@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# MegEngine is Licensed under the Apache License, Version 2.0 (the "License") # MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
# #
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved. # Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
@@ -8,11 +7,11 @@
# "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
import collections import collections


from ... import Tensor
from ... import functional as F
from ...core.tensor.array_method import ArrayMethodMixin
from ...module import Module
from ...module.qat import QATModule
from .. import Tensor
from .. import functional as F
from ..core.tensor.array_method import ArrayMethodMixin
from ..module import Module
from ..module.qat import QATModule


_active_module_tracer = None _active_module_tracer = None



imperative/python/megengine/experimental/traced_module/node.py → imperative/python/megengine/traced_module/node.py View File

@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# MegEngine is Licensed under the Apache License, Version 2.0 (the "License") # MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
# #
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved. # Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
@@ -12,9 +11,9 @@ from typing import Any, Dict, List, Tuple, Type


import numpy import numpy


from ...core._imperative_rt.core2 import Tensor as RawTensor
from ...module import Module
from ...tensor import Tensor
from ..core._imperative_rt.core2 import Tensor as RawTensor
from ..module import Module
from ..tensor import Tensor




class Node: class Node:

imperative/python/megengine/experimental/traced_module/pytree.py → imperative/python/megengine/traced_module/pytree.py View File

@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# MegEngine is Licensed under the Apache License, Version 2.0 (the "License") # MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
# #
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved. # Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
@@ -13,13 +12,13 @@ from typing import Callable, NamedTuple


import numpy as np import numpy as np


from ...core._imperative_rt.common import CompNode
from ...core._imperative_rt.core2 import Tensor as RawTensor
from ...core._wrap import Device
from ...core.tensor.dtype import QuantDtypeMeta
from ...module import Module
from ...quantization.utils import LSQParams, QParams, QuantMode
from ...tensor import Parameter, Tensor
from ..core._imperative_rt.common import CompNode
from ..core._imperative_rt.core2 import Tensor as RawTensor
from ..core._wrap import Device
from ..core.tensor.dtype import QuantDtypeMeta
from ..module import Module
from ..quantization.utils import LSQParams, QParams, QuantMode
from ..tensor import Parameter, Tensor
from .node import ModuleNode, Node, NodeMixin, TensorNode from .node import ModuleNode, Node, NodeMixin, TensorNode





imperative/python/megengine/experimental/traced_module/serialization.py → imperative/python/megengine/traced_module/serialization.py View File

@@ -7,9 +7,9 @@
# "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
from typing import Dict from typing import Dict


from ...core._imperative_rt import OpDef
from ...core.ops import builtin
from ...version import __version__
from ..core._imperative_rt import OpDef
from ..core.ops import builtin
from ..version import __version__


OPDEF_PARAM_LOADER = {} OPDEF_PARAM_LOADER = {}



imperative/python/megengine/experimental/traced_module/traced_module.py → imperative/python/megengine/traced_module/traced_module.py View File

@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# MegEngine is Licensed under the Apache License, Version 2.0 (the "License") # MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
# #
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved. # Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
@@ -22,21 +21,21 @@ from typing import Callable, Dict, Iterable, List, Optional, Sequence, Type, Uni


from megengine import tensor from megengine import tensor


from ... import functional as F
from ... import get_logger
from ... import module as M
from ...core._imperative_rt.core2 import Tensor as RawTensor
from ...core._imperative_rt.core2 import (
from .. import functional as F
from .. import get_logger
from .. import module as M
from ..core._imperative_rt.core2 import Tensor as RawTensor
from ..core._imperative_rt.core2 import (
is_tracing_module, is_tracing_module,
set_module_tracing, set_module_tracing,
unset_module_tracing, unset_module_tracing,
) )
from ...core._trace_option import set_symbolic_shape
from ...core.tensor.array_method import ArrayMethodMixin
from ...module import Module
from ...module.qat import QATModule
from ...quantization.fake_quant import LSQ, TQT, FakeQuantize, _FakeQuantize
from ...quantization.observer import (
from ..core._trace_option import set_symbolic_shape
from ..core.tensor.array_method import ArrayMethodMixin
from ..module import Module
from ..module.qat import QATModule
from ..quantization.fake_quant import LSQ, TQT, FakeQuantize, _FakeQuantize
from ..quantization.observer import (
ExponentialMovingAverageObserver, ExponentialMovingAverageObserver,
HistogramObserver, HistogramObserver,
MinMaxObserver, MinMaxObserver,
@@ -45,7 +44,7 @@ from ...quantization.observer import (
SyncExponentialMovingAverageObserver, SyncExponentialMovingAverageObserver,
SyncMinMaxObserver, SyncMinMaxObserver,
) )
from ...tensor import Tensor
from ..tensor import Tensor
from .expr import Apply, CallFunction, CallMethod, Constant, Expr, GetAttr, Input from .expr import Apply, CallFunction, CallMethod, Constant, Expr, GetAttr, Input
from .fake_quant import FakeQuantize as TM_FakeQuant from .fake_quant import FakeQuantize as TM_FakeQuant
from .module_tracer import ( from .module_tracer import (

imperative/python/megengine/experimental/traced_module/utils.py → imperative/python/megengine/traced_module/utils.py View File

@@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# MegEngine is Licensed under the Apache License, Version 2.0 (the "License") # MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
# #
# Copyright (c) 2014-2021 Megvii Inc. All rights reserved. # Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
@@ -10,7 +9,7 @@ import copy
from collections.abc import MutableMapping, MutableSequence from collections.abc import MutableMapping, MutableSequence
from typing import Dict, Iterable, List, Optional, Sequence from typing import Dict, Iterable, List, Optional, Sequence


from ...module import Module
from ..module import Module




def replace_container_with_module_container(container): def replace_container_with_module_container(container):

+ 1
- 1
imperative/python/test/integration/test_converge.py View File

@@ -15,9 +15,9 @@ import megengine as mge
import megengine.autodiff as ad import megengine.autodiff as ad
import megengine.functional as F import megengine.functional as F
from megengine import Tensor from megengine import Tensor
from megengine.experimental.traced_module import trace_module
from megengine.module import Linear, Module from megengine.module import Linear, Module
from megengine.optimizer import SGD from megengine.optimizer import SGD
from megengine.traced_module import trace_module


batch_size = 64 batch_size = 64
data_shape = (batch_size, 2) data_shape = (batch_size, 2)


+ 1
- 1
imperative/python/test/integration/test_converge_with_gradient_clip.py View File

@@ -16,10 +16,10 @@ import megengine.autodiff as ad
import megengine.functional as F import megengine.functional as F
import megengine.optimizer as optim import megengine.optimizer as optim
from megengine import Tensor from megengine import Tensor
from megengine.experimental.traced_module import trace_module
from megengine.jit import trace from megengine.jit import trace
from megengine.module import Linear, Module from megengine.module import Linear, Module
from megengine.optimizer import SGD from megengine.optimizer import SGD
from megengine.traced_module import trace_module


batch_size = 64 batch_size = 64
data_shape = (batch_size, 2) data_shape = (batch_size, 2)


+ 1
- 1
imperative/python/test/integration/test_trace_dump.py View File

@@ -19,8 +19,8 @@ import megengine.module as M
import megengine.optimizer as optim import megengine.optimizer as optim
from megengine import tensor from megengine import tensor
from megengine.autodiff import GradManager from megengine.autodiff import GradManager
from megengine.experimental.traced_module import trace_module
from megengine.jit import trace from megengine.jit import trace
from megengine.traced_module import trace_module




@contextlib.contextmanager @contextlib.contextmanager


+ 1
- 4
imperative/python/test/unit/core/test_serialization.py View File

@@ -15,10 +15,7 @@ import numpy as np
import megengine as mge import megengine as mge
from megengine import Parameter, Tensor from megengine import Parameter, Tensor
from megengine.core.ops import builtin from megengine.core.ops import builtin
from megengine.experimental.traced_module.serialization import (
get_opdef_state,
load_opdef_from_state,
)
from megengine.traced_module.serialization import get_opdef_state, load_opdef_from_state




def test_tensor_serialization(): def test_tensor_serialization():


+ 1
- 1
imperative/python/test/unit/module/test_module.py View File

@@ -15,7 +15,6 @@ import pytest
import megengine as mge import megengine as mge
import megengine.functional as F import megengine.functional as F
from megengine import Parameter, Tensor, tensor from megengine import Parameter, Tensor, tensor
from megengine.experimental.traced_module import TracedModule, trace_module
from megengine.module import ( from megengine.module import (
BatchNorm1d, BatchNorm1d,
BatchNorm2d, BatchNorm2d,
@@ -30,6 +29,7 @@ from megengine.module import (
) )
from megengine.module.module import _access_structure from megengine.module.module import _access_structure
from megengine.quantization.quantize import quantize, quantize_qat from megengine.quantization.quantize import quantize, quantize_qat
from megengine.traced_module import TracedModule, trace_module
from megengine.utils.module_utils import get_expand_structure, set_expand_structure from megengine.utils.module_utils import get_expand_structure, set_expand_structure






+ 1
- 1
imperative/python/test/unit/traced_module/test_haoruitao.py View File

@@ -7,8 +7,8 @@ import megengine.functional as F
import megengine.module as M import megengine.module as M
import megengine.utils.comp_graph_tools as cgtools import megengine.utils.comp_graph_tools as cgtools
from megengine.core._trace_option import set_symbolic_shape from megengine.core._trace_option import set_symbolic_shape
from megengine.experimental.traced_module import trace_module
from megengine.jit import trace from megengine.jit import trace
from megengine.traced_module import trace_module


set_symbolic_shape(True) set_symbolic_shape(True)




+ 1
- 1
imperative/python/test/unit/traced_module/test_jit_trace.py View File

@@ -12,9 +12,9 @@ import numpy as np
import megengine.functional as F import megengine.functional as F
import megengine.module as M import megengine.module as M
import megengine.utils.comp_graph_tools as cgtools import megengine.utils.comp_graph_tools as cgtools
from megengine.experimental.traced_module import trace_module
from megengine.jit import trace from megengine.jit import trace
from megengine.module import Module from megengine.module import Module
from megengine.traced_module import trace_module




class MyBlock(Module): class MyBlock(Module):


+ 2
- 2
imperative/python/test/unit/traced_module/test_modification.py View File

@@ -9,8 +9,8 @@ import numpy as np


import megengine.functional as F import megengine.functional as F
import megengine.module as M import megengine.module as M
from megengine.experimental.traced_module import trace_module
from megengine.experimental.traced_module.expr import CallFunction, GetAttr
from megengine.traced_module import trace_module
from megengine.traced_module.expr import CallFunction, GetAttr




class MyBlock(M.Module): class MyBlock(M.Module):


+ 1
- 1
imperative/python/test/unit/traced_module/test_serialization.py View File

@@ -12,8 +12,8 @@ import numpy as np
import megengine.functional as F import megengine.functional as F
import megengine.module as M import megengine.module as M
from megengine import Tensor from megengine import Tensor
from megengine.experimental.traced_module import trace_module
from megengine.module import Module from megengine.module import Module
from megengine.traced_module import trace_module




class MyBlock(Module): class MyBlock(Module):


+ 1
- 1
imperative/python/test/unit/traced_module/test_trace_module.py View File

@@ -2,7 +2,7 @@ import numpy as np


import megengine.module as M import megengine.module as M
from megengine import Tensor from megengine import Tensor
from megengine.experimental.traced_module import TracedModule, trace_module
from megengine.traced_module import TracedModule, trace_module




class MyModule1(M.Module): class MyModule1(M.Module):


+ 1
- 1
imperative/python/test/unit/traced_module/test_wujianan.py View File

@@ -8,8 +8,8 @@ import megengine.functional as F
import megengine.module as M import megengine.module as M
import megengine.utils.comp_graph_tools as cgtools import megengine.utils.comp_graph_tools as cgtools
from megengine.core._trace_option import set_symbolic_shape from megengine.core._trace_option import set_symbolic_shape
from megengine.experimental.traced_module import trace_module
from megengine.jit import trace from megengine.jit import trace
from megengine.traced_module import trace_module


set_symbolic_shape(True) set_symbolic_shape(True)




Loading…
Cancel
Save