# runs all 3 failure configurations for all 3 models
if __name__ == "__main__":
    accuracy = accuracy("Health")
    calc_expected_accuracy = accuracy.calc_expected_accuracy
    data, num_vars = init_data()

    load_for_inference = False
    failout_survival_settings = [
        [0.95, 0.95, 0.95],
        [0.9, 0.9, 0.9],
        [0.7, 0.7, 0.7],
        [0.5, 0.5, 0.5],
    ]
    no_information_flow_map = make_no_information_flow_map(
        "Health", default_skip_hyperconnection_config)
    # file name with the experiments accuracy output
    mux_adds_str = "mux_adds" if ResiliNetPlus else ""
    output_name = "results/health_failout_rate" + mux_adds_str + ".txt"
    verbose = 2
    # keep track of output so that output is in order
    output_list = []

    output = make_output_dictionary_failout_rate(failout_survival_settings,
                                                 reliability_settings,
                                                 num_iterations)
    dropout_like_failout = False
    make_results_folder()
    for iteration in range(1, num_iterations + 1):
        output_list.append("ITERATION " + str(iteration) + "\n")
        print("ITERATION ", iteration)
        model_file,
        data,
        epochs,
        batch_size,
        verbose,
    )
    return model


# runs all 3 failure configurations for all 3 models
if __name__ == "__main__":
    accuracy = accuracy("Camera")
    calc_expected_accuracy = accuracy.calc_expected_accuracy
    data = init_data()

    no_information_flow_map = make_no_information_flow_map(
        "Camera", default_skip_hyperconnection_config)

    load_for_inference = False
    # file name with the experiments accuracy output
    mux_adds_str = "mux_adds" if ResiliNetPlus else ""
    output_name = "results/camera_hyperconnection_weight" + mux_adds_str + ".txt"
    verbose = 2
    model_name = "ResiliNet Hyperconnection Weight"
    hyperconnection_weightedbyreliability_config = 2
    # keep track of output so that output is in order
    output_list = []

    output, weight_schemes = make_output_dictionary_hyperconnection_weight(
        model_name, reliability_settings, num_iterations)
    considered_weight_schemes = [1, 2, 3, 4]
    default_reliability_setting = [1, 1, 1, 1, 1, 1, 1, 1]
示例#3
0
    skip_hyperconnection_configurations = [
        # [f2,f3,f4,e1,e2,e3,e4]
        [1, 1, 1, 1, 0, 0, 0],
        [1, 0, 0, 0, 0, 0, 1],
        [1, 0, 0, 0, 1, 0, 0],
        [0, 0, 0, 0, 1, 0, 1],
        [0, 0, 0, 0, 0, 0, 1],
        [0, 0, 0, 0, 0, 1, 1],
        [1, 1, 1, 1, 0, 0, 1],
        [1, 1, 1, 1, 1, 1, 1],
    ]
    no_information_flow_map = {}
    for skip_hyperconnection_configuration in skip_hyperconnection_configurations:
        no_information_flow_map[tuple(skip_hyperconnection_configuration
                                      )] = make_no_information_flow_map(
                                          "Camera",
                                          skip_hyperconnection_configuration)

    default_reliability_setting = [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0]
    load_for_inference = False
    mux_adds_str = "mux_adds" if ResiliNetPlus else ""
    output_name = ("results/camera_skiphyperconnection_sensitivity" +
                   mux_adds_str + ".txt")

    verbose = 2
    # keep track of output so that output is in order
    output_list = []
    model_name = "ResiliNet Hyperconnection Weight Sensitivity"
    output = make_output_dictionary(
        model_name,
        reliability_settings,
                                                 1] = calc_expected_accuracy(
                                                     model,
                                                     no_information_flow_map,
                                                     reliability_setting,
                                                     output_list,
                                                     data=data,
                                                 )


# runs all 3 failure configurations for all 3 models
if __name__ == "__main__":
    accuracy = accuracy("Health")
    calc_expected_accuracy = accuracy.calc_expected_accuracy
    data, num_vars = init_data()

    ResiliNet_no_information_flow_map = make_no_information_flow_map(
        "Health", default_skip_hyperconnection_config)
    DFG_no_information_flow_map = make_no_information_flow_map(
        "Health", default_skip_hyperconnection_config)
    Vanilla_no_information_flow_map = make_no_information_flow_map("Health")

    load_for_inference = False

    # file name with the experiments accuracy output
    mux_adds_str = "mux_adds" if ResiliNetPlus else ""
    output_name = "results/health_average_accuracy" + mux_adds_str + ".txt"

    verbose = 2

    # keep track of output so that output is in order
    output_list = []
        # [f2,e1,g1]
        [0, 0, 0],
        [1, 0, 0],
        [0, 1, 0],
        [0, 0, 1],
        [1, 1, 0],
        [1, 0, 1],
        [0, 1, 1],
        [1, 1, 1],
    ]
    default_reliability_setting = [1.0, 1.0, 1.0]
    no_information_flow_map = {}
    for skip_hyperconnection_configuration in skip_hyperconnection_configurations:
        no_information_flow_map[
            tuple(skip_hyperconnection_configuration)
        ] = make_no_information_flow_map("Health", skip_hyperconnection_configuration)

    load_for_inference = False
    mux_adds_str = "mux_adds" if ResiliNetPlus else ""
    output_name = (
        "results/health_skiphyperconnection_sensitivity" + mux_adds_str + ".txt"
    )

    verbose = 2
    # keep track of output so that output is in order
    output_list = []
    model_name = "ResiliNet Hyperconnection Weight Sensitivity"
    output = make_output_dictionary(
        model_name,
        reliability_settings,
        num_iterations,
        epochs,
        progress_verbose,
        checkpoint_verbose,
        train_steps_per_epoch,
        val_steps_per_epoch,
        num_gpus,
    )
    return model


if __name__ == "__main__":
    accuracy = accuracy("CIFAR")
    calc_expected_accuracy = accuracy.calc_expected_accuracy
    data = init_data()

    ResiliNet_no_information_flow_map = make_no_information_flow_map(
        "CIFAR/Imagenet", default_skip_hyperconnection_config)
    DFG_no_information_flow_map = make_no_information_flow_map(
        "CIFAR/Imagenet", default_skip_hyperconnection_config)
    Vanilla_no_information_flow_map = make_no_information_flow_map(
        "CIFAR/Imagenet")

    train_steps_per_epoch = math.ceil(len(data.train) / batch_size)
    val_steps_per_epoch = math.ceil(len(data.val) / batch_size)

    output = make_output_dictionary_average_accuracy(reliability_settings,
                                                     num_iterations)
    load_for_inference = False

    make_results_folder()
    output_name = "results" + "/cifar_average_accuracy_results.txt"
    output_list = []
    )
    return model


#  hyperconnection weight experiment
if __name__ == "__main__":
    accuracy = accuracy("ResNet")
    calc_expected_accuracy = accuracy.calc_expected_accuracy
    data = init_data()

    model_name = "ResiliNet Hyperconnection Weight"
    output, weight_schemes = make_output_dictionary_hyperconnection_weight(
        model_name, reliability_settings, num_iterations)
    considered_weight_schemes = [1, 2, 3, 4]

    no_information_flow_map = make_no_information_flow_map(
        "ResNet", default_skip_hyperconnection_config)

    load_for_inference = False
    train_steps_per_epoch = math.ceil(len(data.train) / batch_size)
    val_steps_per_epoch = math.ceil(len(data.val) / batch_size)

    make_results_folder()
    mux_adds_str = "mux_adds" if ResiliNetPlus else ""
    output_name = ("results/cifar_resnet_hyperconnection_weight_results" +
                   mux_adds_str + ".txt")
    output_list = []
    default_reliability_setting = [1, 1]
    for iteration in range(1, num_iterations + 1):
        print("iteration:", iteration)
        for weight_scheme in considered_weight_schemes:
            if (weight_scheme == 2 or weight_scheme
        [1, 1],
    ]
    model_name = "ResiliNet Hyperconnection Weight Sensitivity"
    default_reliability_setting = [1.0, 1.0, 1.0]
    output = make_output_dictionary(
        model_name,
        reliability_settings,
        num_iterations,
        skip_hyperconnection_configurations,
    )

    no_information_flow_map = {}
    for skip_hyperconnection_configuration in skip_hyperconnection_configurations:
        no_information_flow_map[tuple(skip_hyperconnection_configuration
                                      )] = make_no_information_flow_map(
                                          "CIFAR/Imagenet",
                                          skip_hyperconnection_configuration)

    load_for_inference = False
    train_steps_per_epoch = math.ceil(len(data.train) / batch_size)
    val_steps_per_epoch = math.ceil(len(data.val) / batch_size)

    make_results_folder()
    mux_adds_str = "mux_adds" if ResiliNetPlus else ""
    output_name = ("results/cifar_skiphyperconnection_sensitivity_results" +
                   mux_adds_str + ".txt")
    output_list = []
    for iteration in range(1, num_iterations + 1):
        print("iteration:", iteration)
        for skip_hyperconnection_configuration in skip_hyperconnection_configurations:
            layer.set_weights([new_weights])


# ResiliNet variable failout experiment
if __name__ == "__main__":
    accuracy = accuracy("CIFAR")
    calc_expected_accuracy = accuracy.calc_expected_accuracy
    data = init_data()

    output_list = []

    load_for_inference = False
    train_steps_per_epoch = math.ceil(len(data.train) / batch_size)
    val_steps_per_epoch = math.ceil(len(data.val) / batch_size)
    no_information_flow_map = make_no_information_flow_map(
        "CIFAR/Imagenet", default_skip_hyperconnection_config
    )
    failout_survival_settings = [[0.95, 0.95], [0.9, 0.9], [0.7, 0.7], [0.5, 0.5]]
    dropout_like_failout = False
    output = make_output_dictionary_failout_rate(
        failout_survival_settings, reliability_settings, num_iterations
    )
    make_results_folder()
    mux_adds_str = "mux_adds" if ResiliNetPlus else ""
    output_name = "results/cifar_failout_results" + mux_adds_str + ".txt"
    for iteration in range(1, num_iterations + 1):
        output_list.append("ITERATION " + str(iteration) + "\n")
        print("iteration:", iteration)
        output_list.append("ResiliNet" + "\n")
        # variable failout rate
        for reliability_setting in reliability_settings:
        [1, 1],
    ]
    model_name = "ResiliNet Hyperconnection Weight Sensitivity"
    default_reliability_setting = [1.0, 1.0, 1.0]
    output = make_output_dictionary(
        model_name,
        reliability_settings,
        num_iterations,
        skip_hyperconnection_configurations,
    )

    no_information_flow_map = {}
    for skip_hyperconnection_configuration in skip_hyperconnection_configurations:
        no_information_flow_map[
            tuple(skip_hyperconnection_configuration)
        ] = make_no_information_flow_map("ResNet", skip_hyperconnection_configuration)

    load_for_inference = False
    train_steps_per_epoch = math.ceil(len(data.train) / batch_size)
    val_steps_per_epoch = math.ceil(len(data.val) / batch_size)

    make_results_folder()
    mux_adds_str = "mux_adds" if ResiliNetPlus else ""
    output_name = (
        "results/cifar_resnet_skiphyperconnection_sensitivity_results"
        + mux_adds_str
        + ".txt"
    )
    output_list = []
    for iteration in range(1, num_iterations + 1):
        print("iteration:", iteration)