Decompose类方法,模型低秩分解各层的分解率配置,以字典的方式指定各层的分解后channel 数,返回自身用于链式调用。
from_dict(channel_dict, excludes=None, divisor=64)
参数名 |
输入/返回值 |
含义 |
使用限制 |
---|---|---|---|
channel_dict |
输入 |
字典方式根据层名称指定具体的分解方式。 |
必选。 数据类型:字典类型,key 值为层名或者匹配层名的正则表达式,取值 为int值、float值、"vbmf",分别对应参照 from_fixed、from_ratio、from_vbmf。 说明:
在使用复杂的正则表达式时,用户需保证正则表达式的安全性,规避Redos攻击的风险,否则会引起程序执行缓慢。 |
excludes |
输入 |
指定不分解的层名称。 |
可选。 数据类型:None或列表或元组。 默认值为None。 |
divisor |
输入 |
指定分解后channel的倍率,如指定16,则分解后的channel 数为16的倍数。 |
可选。 数据类型:整数,且大于0,默认值为64。 说明:
divisor设置为1时,表示禁用此功能。 |
from msmodelslim.pytorch import low_rank_decompose decomposer = low_rank_decompose.Decompose(model) #调用__init__初始化类 decomposer = decomposer.from_dict({'feature.0': (64, 64), 'inner': 192, 'classifier.0': 128}, divisor=16) # 按照dict方式计算分解信息