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.8 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. # -*- coding: utf-8 -*-
  2. # MegEngine is Licensed under the Apache License, Version 2.0 (the "License")
  3. #
  4. # Copyright (c) 2014-2020 Megvii Inc. All rights reserved.
  5. #
  6. # Unless required by applicable law or agreed to in writing,
  7. # software distributed under the License is distributed on an
  8. # "AS IS" BASIS, WITHOUT ARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  9. import pickle
  10. from ..utils.max_recursion_limit import max_recursion_limit
  11. def save(obj, f, pickle_module=pickle, pickle_protocol=pickle.HIGHEST_PROTOCOL):
  12. r"""Save an object to disk file.
  13. :type obj: object
  14. :param obj: object to save. Only ``module`` or ``state_dict`` are allowed.
  15. :type f: text file object
  16. :param f: a string of file name or a text file object to which ``obj`` is saved to.
  17. :type pickle_module:
  18. :param pickle_module: Default: ``pickle``.
  19. :type pickle_protocol:
  20. :param pickle_protocol: Default: ``pickle.HIGHEST_PROTOCOL``.
  21. """
  22. if isinstance(f, str):
  23. with open(f, "wb") as fout:
  24. save(
  25. obj, fout, pickle_module=pickle_module, pickle_protocol=pickle_protocol
  26. )
  27. return
  28. with max_recursion_limit():
  29. assert hasattr(f, "write"), "{} does not support write".format(f)
  30. pickle_module.dump(obj, f, pickle_protocol)
  31. def load(f, pickle_module=pickle):
  32. r"""Load an object saved with save() from a file.
  33. :type f: text file object
  34. :param f: a string of file name or a text file object from which to load.
  35. :type pickle_module:
  36. :param pickle_module: Default: ``pickle``.
  37. """
  38. if isinstance(f, str):
  39. with open(f, "rb") as fin:
  40. return load(fin, pickle_module=pickle_module)
  41. return pickle_module.load(f)

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

Contributors (1)