# 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]
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)