调试#
本节例子中假设你已经处于你的实验目录中,你的模型配置文件名为 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))