Spaces:
Running
Running
from methods.elasticdnn.pipeline.offline.fm_to_md.base import FM_to_MD_Util | |
import torch | |
def test(fm, fm_to_md_util: FM_to_MD_Util, samples: torch.Tensor): | |
master_dnn = fm_to_md_util.init_md_from_fm_by_reducing_width_with_perf_test(fm, 4, samples) | |
torch.save(master_dnn, 'tmp-master-dnn.pt') | |
if __name__ == '__main__': | |
from utils.dl.common.env import set_random_seed | |
set_random_seed(1) | |
# from torchvision.models import resnet50 | |
# from methods.elasticdnn.model.cnn import ElasticCNNUtil | |
# raw_cnn = resnet50() | |
# prunable_layers = [] | |
# for i in range(1, 5): | |
# for j in range([3, 4, 6, 3][i - 1]): | |
# prunable_layers += [f'layer{i}.{j}.conv1', f'layer{i}.{j}.conv2'] | |
# ignore_layers = [layer for layer, m in raw_cnn.named_modules() if isinstance(m, nn.Conv2d) and layer not in prunable_layers] | |
# test(raw_cnn, ignore_layers, ElasticCNNUtil(), torch.rand(2, 3, 224, 224)) | |
from dnns.vit import vit_b_16 | |
from methods.elasticdnn.pipeline.offline.fm_to_md.vit import FM_to_MD_ViT_Util | |
raw_vit = vit_b_16() | |
test(raw_vit.cuda(), FM_to_MD_ViT_Util(), torch.rand(2, 3, 224, 224).cuda()) | |