예제 #1
0
    def __init__(self, options=None, conf_path=None):
        self.settings = options or Option(conf_path)
        self.checkpoint = None
        self.train_loader = None
        self.val_loader = None
        self.original_model = None
        self.pruned_model = None

        self.aux_fc_state = None
        self.aux_fc_opt_state = None
        self.seg_opt_state = None
        self.current_pivot_index = None

        self.epoch = 0

        os.environ['CUDA_VISIBLE_DEVICES'] = self.settings.gpu

        self.settings.set_save_path()
        write_settings(self.settings)
        self.logger = get_logger(self.settings.save_path, "dcp")
        self.tensorboard_logger = TensorboardLogger(self.settings.save_path)
        self.settings.copy_code(self.logger,
                                src=os.path.abspath('./'),
                                dst=os.path.join(self.settings.save_path,
                                                 'code'))
        self.logger.info("|===>Result will be saved at {}".format(
            self.settings.save_path))

        self.prepare()
예제 #2
0
    def __init__(self, options=None, conf_path=None):
        self.settings = options or Option(conf_path)
        self.checkpoint = None
        self.train_loader = None
        self.val_loader = None
        self.pruned_model = None
        self.network_wise_trainer = None
        self.optimizer_state = None
        self.aux_fc_state = None

        os.environ['CUDA_VISIBLE_DEVICES'] = self.settings.gpu

        self.settings.set_save_path()
        write_settings(self.settings)
        self.logger = get_logger(self.settings.save_path, "finetune")
        self.tensorboard_logger = TensorboardLogger(self.settings.save_path)
        self.logger.info("|===>Result will be saved at {}".format(self.settings.save_path))
        self.epoch = 0
        self.test_input = None

        self.prepare()
예제 #3
0

if __name__ == "__main__":
    # model = MobileFaceNet(128, blocks=[1, 2, 2, 1])       # 2.36 M
    # model = MobileFaceNet(128, blocks=[1, 2, 3, 1])       # 2.62 M
    # model = MobileFaceNet(128, blocks=[1, 4, 6, 2])       # 3.83 M
    # model = MobileFaceNet(256, blocks=[2, 8, 16, 4])        # 7.61 M
    # model = MobileFaceNet(256, blocks=[4, 8, 16, 8])      # 8.75 M

    # zqcnn mobilefacenet_v2
    # model = ZQMobileFaceNet(256, blocks=[1, 4, 6, 2])         # 11.34 M
    # model = ZQMobileFaceNet(256, blocks=[4,8,16,4])         # 21.25 M
    # model = ZQMobileFaceNet(512, blocks=[4, 8, 16, 4])        # 21.75 M
    model = ZQMobileFaceNet(512, blocks=[4, 8, 16, 8])  # 29.88 M
    # model = ZQMobileFaceNet(512, blocks=[8, 16, 32, 8])     # 39.36 M

    print(model)
    summary(model, (3, 112, 112))

    save_path = './finetune-test'
    if not os.path.exists(save_path):
        os.makedirs(save_path)
    logger = get_logger(save_path, "finetune-test")
    test_input = torch.randn(1, 3, 112, 112)
    model_analyse = ModelAnalyse(model, logger)
    model_analyse.flops_compute(test_input)
    # count = 0
    # for module in model.modules():
    #     print("{:d} = {}".format(count, module))
    #     count += 1