Esempio n. 1
0
def general_test(network_type, weights, builder=None, net=None, dataset_name=None, weights_dict=None,
                 batch_size=None):
    if weights is None or weights == 'None':
        init_weights = None
        init_hdf5 = None
    elif weights.endswith('.hdf5'):
        init_weights = None
        init_hdf5 = weights
    else:
        init_weights = weights
        init_hdf5 = None

    if init_hdf5 is not None:
        deps = extract_deps_from_weights_file(init_hdf5)
    else:
        deps = None

    if deps is None and ('wrnc16' in network_type or 'wrnh16' in network_type):
        from constants import wrn_origin_deps_flattened
        deps = wrn_origin_deps_flattened(2, 8)

    if network_type == 'sres50':
        from constants import RESNET50_ORIGIN_DEPS_FLATTENED
        from rr.resrep_scripts import calculate_resnet_50_flops
        flops_ratio = calculate_resnet_50_flops(deps) / calculate_resnet_50_flops(RESNET50_ORIGIN_DEPS_FLATTENED)
        extra_msg = 'flops_r={:.4f}'.format(flops_ratio)
    else:
        extra_msg = None

    if batch_size is None:
        batch_size = TEST_BATCH_SIZE
    test_config = get_baseconfig_for_test(network_type=network_type, dataset_subset='val', global_batch_size=batch_size,
                                          init_weights=init_weights, deps=deps, dataset_name=dataset_name)
    return ding_test(cfg=test_config, net=net, show_variables=True, init_hdf5=init_hdf5, convbuilder=builder,
              extra_msg=extra_msg, weights_dict=weights_dict)
Esempio n. 2
0
def general_test(network_type, weights, builder=None):
    if weights.endswith('.hdf5'):
        init_weights = None
        init_hdf5 = weights
    else:
        init_weights = weights
        init_hdf5 = None
    deps = extract_deps_from_weights_file(weights)
    if deps is None and ('wrnc16' in network_type or 'wrnh16' in network_type):
        from constants import wrn_origin_deps_flattened
        deps = wrn_origin_deps_flattened(2, 8)

    test_config = get_baseconfig_for_test(network_type=network_type, dataset_subset='val', global_batch_size=TEST_BATCH_SIZE,
                                          init_weights=init_weights, deps=deps)
    ding_test(cfg=test_config, show_variables=True, init_hdf5=init_hdf5, convbuilder=builder)
Esempio n. 3
0
def general_test(network_type,
                 weights,
                 builder=None,
                 net=None,
                 dataset_name=None,
                 weights_dict=None,
                 batch_size=None):
    if weights is None or weights == 'None':
        init_weights = None
        init_hdf5 = None
    elif weights.endswith('.hdf5'):
        init_weights = None
        init_hdf5 = weights
    else:
        init_weights = weights
        init_hdf5 = None

    if init_hdf5 is not None:
        deps = extract_deps_from_weights_file(init_hdf5)
    else:
        deps = None

    if deps is None and ('wrnc16' in network_type or 'wrnh16' in network_type):
        from constants import wrn_origin_deps_flattened
        deps = wrn_origin_deps_flattened(2, 8)

    if batch_size is None:
        batch_size = TEST_BATCH_SIZE
    test_config = get_baseconfig_for_test(network_type=network_type,
                                          dataset_subset='val',
                                          global_batch_size=batch_size,
                                          init_weights=init_weights,
                                          deps=deps,
                                          dataset_name=dataset_name)
    return ding_test(cfg=test_config,
                     net=net,
                     show_variables=True,
                     init_hdf5=init_hdf5,
                     convbuilder=builder,
                     weights_dict=weights_dict)
Esempio n. 4
0
                                   iters_per_half=iters_per_half,
                                   thresh=thresh)
        aofp_train_main(local_rank=start_arg.local_rank,
                        target_layers=target_layers,
                        succ_strategy=succ_strategy,
                        warmup_iterations=warmup_iterations,
                        aofp_batches_per_half=iters_per_half,
                        cfg=aofp_config,
                        show_variables=True,
                        convbuilder=aofp_builder,
                        init_hdf5=init_hdf5,
                        flops_func=flops_func,
                        remain_flops_ratio=flops_remain_target)

    #   finetune
    pruned_deps = extract_deps_from_weights_file(pruned_path)
    finetune_config = get_baseconfig_by_epoch(
        network_type=network_type,
        dataset_name=get_dataset_name_by_model_name(network_type),
        dataset_subset='train',
        global_batch_size=batch_size,
        num_node=1,
        weight_decay=weight_decay_strength,
        optimizer_type='sgd',
        momentum=0.9,
        max_epochs=finetune_lrs.max_epochs,
        base_lr=finetune_lrs.base_lr,
        lr_epoch_boundaries=finetune_lrs.lr_epoch_boundaries,
        cosine_minimum=finetune_lrs.cosine_minimum,
        lr_decay_factor=finetune_lrs.lr_decay_factor,
        warmup_epochs=0,