调试#

本节例子中假设你已经处于你的实验目录中,你的模型配置文件名为 resnet50.py

在终端中调试#

如果只希望构造出模型在终端中调试,或在其他地方引用,BaseCls 提供了简单的工具函数,帮助用户直接从模型配置文件中构造网络:

 1# 创建配置
 2from resnet50 import Cfg
 3cfg = Cfg()
 4
 5# 创建模型
 6from basecls.models import build_model
 7model = build_model(cfg)
 8
 9# 如果不需要分类头,可以直接删除
10del model.head
11
12# 载入权重
13from basecls.models import load_model
14if getattr(cfg, "weights", None) is not None:
15    load_model(model, cfg.weights, strict=False)
16
17# 开始调试
18from megengine.utils.module_stats import module_stats
19module_stats(model, input_shapes=(1, 3, 224, 224))

BaseCls 同样支持在 hub 中调用官方已有的模型并载入初始化权重(初次载入需要联网):

 1# 创建模型
 2import megengine.hub as hub
 3model = hub.load(
 4    "megvii-research/basecls:main",
 5    "resnet50",  # 模型名称
 6    use_cache=False,
 7    pretrained=True,  # 载入初始化权重
 8)
 9
10# 开始调试
11from megengine.utils.module_stats import module_stats
12module_stats(model, input_shapes=(1, 3, 224, 224))