示例#1
0
def print_parameters(model):
    # compute number of parameters
    num_params, _ = get_num_parameter(model, trainable=False)
    num_bytes = num_params * 32 // 8  # assume float32 for all
    print(
        f"Number of parameters: {human_format(num_params)} ({sizeof_fmt(num_bytes)} for float32)"
    )
    num_trainable_params, trainable_parameters = get_num_parameter(
        model, trainable=True)
    print("Number of trainable parameters:",
          human_format(num_trainable_params))

    if config["only_list_parameters"]:
        # Print detailed number of parameters
        print(tabulate.tabulate(trainable_parameters))
示例#2
0
def print_flops(model):
    shape = None
    if config["dataset"] in ["Cifar10", "Cifar100"]:
        shape = (1, 3, 32, 32)
    else:
        print(
            f"Unknown dataset {config['dataset']} input size to compute # FLOPS"
        )
        return

    try:
        from thop import profile
    except BaseException:
        print("Please `pip install thop` to compute # FLOPS")
        return

    model = model.train()
    input_data = torch.rand(*shape)
    num_flops, num_params = profile(model, inputs=(input_data, ))
    print("Number of FLOPS:", human_format(num_flops))