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.

logconf.py 1.7 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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 logging
  10. import os
  11. _replaced_logger = None
  12. def get_logger():
  13. global _replaced_logger
  14. if _replaced_logger is not None:
  15. return _replaced_logger
  16. logger = logging.getLogger("megbrain")
  17. logger.propagate = False
  18. logger.setLevel(logging.INFO)
  19. handler = logging.StreamHandler()
  20. handler.setFormatter(MgbLogFormatter(datefmt="%d %H:%M:%S"))
  21. handler.setLevel(0)
  22. del logger.handlers[:]
  23. logger.addHandler(handler)
  24. _replaced_logger = logger
  25. return logger
  26. class MgbLogFormatter(logging.Formatter):
  27. def format(self, record):
  28. date = "\x1b[32m[%(asctime)s %(lineno)d@%(filename)s:%(name)s]\x1b[0m"
  29. msg = "%(message)s"
  30. if record.levelno == logging.DEBUG:
  31. fmt = "{} \x1b[32mDBG\x1b[0m {}".format(date, msg)
  32. elif record.levelno == logging.WARNING:
  33. fmt = "{} \x1b[1;31mWRN\x1b[0m {}".format(date, msg)
  34. elif record.levelno == logging.ERROR:
  35. fmt = "{} \x1b[1;4;31mERR\x1b[0m {}".format(date, msg)
  36. else:
  37. fmt = date + " " + msg
  38. self._style._fmt = fmt
  39. return super().format(record)
  40. def set_logger(logger):
  41. """replace the logger"""
  42. global _replaced_logger
  43. _replaced_logger = logger
  44. from .mgb import _register_logger
  45. _register_logger(logger)

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