You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

serialization.py 1.1 kB

12345678910111213141516171819202122232425262728293031323334
  1. # MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
  2. #
  3. # Copyright (c) 2014-2021 Megvii Inc. All rights reserved.
  4. #
  5. # Unless required by applicable law or agreed to in writing,
  6. # software distributed under the License is distributed on an
  7. # "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  8. from typing import Dict
  9. from ...core._imperative_rt import OpDef
  10. from ...core.ops import builtin
  11. from ...version import __version__
  12. OPDEF_PARAM_LOADER = {}
  13. def get_opdef_state(obj: OpDef) -> Dict:
  14. state = obj.__getstate__()
  15. state["type"] = type(obj)
  16. state["version"] = __version__
  17. return state
  18. def load_opdef_from_state(state: Dict) -> OpDef:
  19. assert "type" in state and issubclass(state["type"], OpDef)
  20. assert "version" in state
  21. opdef_type = state.pop("type")
  22. if opdef_type in OPDEF_PARAM_LOADER:
  23. loader = OPDEF_PARAM_LOADER[opdef_type]
  24. state = loader(state)
  25. state.pop("version")
  26. opdef_obj = opdef_type()
  27. opdef_obj.__setstate__(state)
  28. return opdef_obj

MegEngine 安装包中集成了使用 GPU 运行代码所需的 CUDA 环境,不用区分 CPU 和 GPU 版。 如果想要运行 GPU 程序,请确保机器本身配有 GPU 硬件设备并安装好驱动。 如果你想体验在云端 GPU 算力平台进行深度学习开发的感觉,欢迎访问 MegStudio 平台