Spaces:
Build error
Build error
import argparse | |
import re | |
def str2bool(v): | |
if v.lower() in ('yes', 'true', 't', 'y', '1') or v == True: | |
return True | |
elif v.lower() in ('no', 'false', 'f', 'n', '0'): | |
return False | |
else: | |
raise argparse.ArgumentTypeError('Boolean value expected.') | |
def get_default_parser(num_of_samples=None): | |
parser = argparse.ArgumentParser() | |
parser.add_argument('-start_samples', | |
'-ss', dest="start_samples", default=1, | |
type=int, help='The number of the first sample that we calculate the information') | |
parser.add_argument('-batch_size', | |
'-b', dest="batch_size", default=512, | |
type=int, help='The size of the batch') | |
parser.add_argument('-learning_rate', | |
'-l', dest="learning_rate", default=0.0004, | |
type=float, | |
help='The learning rate of the network') | |
parser.add_argument('-num_repeat', | |
'-r', dest="num_of_repeats", default=1, | |
type=int, help='The number of times to run the network') | |
parser.add_argument('-num_epochs', | |
'-e', dest="num_ephocs", default=8000, | |
type=int, help='max number of epochs') | |
parser.add_argument('-net', | |
'-n', dest="net_type", default='1', | |
help='The architecture of the networks') | |
parser.add_argument('-inds', | |
'-i', dest="inds", default='[80]', | |
help='The percent of the training data') | |
parser.add_argument('-name', | |
'-na', dest="name", default='net', | |
help='The name to save the results') | |
parser.add_argument('-d_name', | |
'-dna', dest="data_name", default='var_u', | |
help='The dataset that we want to run ') | |
parser.add_argument('-num_samples', | |
'-ns', dest="num_of_samples", default=400, | |
type=int, | |
help='The max number of indexes for calculate information') | |
parser.add_argument('-nDistSmpls', | |
'-nds', dest="nDistSmpls", default=1, | |
type=int, help='S') | |
parser.add_argument('-save_ws', | |
'-sws', dest="save_ws", type=str2bool, nargs='?', const=False, default=False, | |
help='if we want to save the output of the layers') | |
parser.add_argument('-calc_information', | |
'-cinf', dest="calc_information", type=str2bool, nargs='?', const=True, default=True, | |
help='if we want to calculate the MI in the network for all the epochs') | |
parser.add_argument('-calc_information_last', | |
'-cinfl', dest="calc_information_last", type=str2bool, nargs='?', const=False, default=False, | |
help='if we want to calculate the MI in the network only for the last epoch') | |
parser.add_argument('-save_grads', | |
'-sgrad', dest="save_grads", type=str2bool, nargs='?', const=False, default=False, | |
help='if we want to save the gradients in the network') | |
parser.add_argument('-run_in_parallel', | |
'-par', dest="run_in_parallel", type=str2bool, nargs='?', const=False, default=False, | |
help='If we want to run all the networks in parallel mode') | |
parser.add_argument('-num_of_bins', | |
'-nbins', dest="num_of_bins", default=30, type=int, | |
help='The number of bins that we divide the output of the neurons') | |
parser.add_argument('-activation_function', | |
'-af', dest="activation_function", default=0, type=int, | |
help='The activation function of the model 0 for thnh 1 for RelU') | |
parser.add_argument('-iad', dest="interval_accuracy_display", default=499, type=int, | |
help='The interval for display accuracy') | |
parser.add_argument('-interval_information_display', | |
'-iid', dest="interval_information_display", default=30, type=int, | |
help='The interval for display the information calculation') | |
parser.add_argument('-cov_net', | |
'-cov', dest="cov_net", type=int, default=0, | |
help='True if we want covnet') | |
parser.add_argument('-rl', | |
'-rand_labels', dest="random_labels", type=str2bool, nargs='?', const=False, default=False, | |
help='True if we want to set random labels') | |
parser.add_argument('-data_dir', | |
'-dd', dest="data_dir", default='data/', | |
help='The directory for finding the data') | |
args = parser.parse_args() | |
args.inds = [map(int, inner.split(',')) for inner in re.findall("\[(.*?)\]", args.inds)] | |
if num_of_samples != None: | |
args.inds = [[num_of_samples]] | |
return args | |
def select_network_arch(type_net): | |
"""Selcet the architectures of the networks according to their type | |
we can choose also costume network for example type_net=[size_1, size_2, size_3]""" | |
if type_net == '1': | |
layers_sizes = [[10, 7, 5, 4, 3]] | |
elif type_net == '1-2-3': | |
layers_sizes = [[10, 9, 7, 7, 3], [10, 9, 7, 5, 3], [10, 9, 7, 3, 3]] | |
elif type_net == '11': | |
layers_sizes = [[10, 7, 7, 4, 3]] | |
elif type_net == '2': | |
layers_sizes = [[10, 7, 5, 4]] | |
elif type_net == '3': | |
layers_sizes = [[10, 7, 5]] | |
elif type_net == '4': | |
layers_sizes = [[10, 7]] | |
elif type_net == '5': | |
layers_sizes = [[10]] | |
elif type_net == '6': | |
layers_sizes = [[1, 1, 1, 1]] | |
else: | |
# Custom network | |
layers_sizes = [map(int, inner.split(',')) for inner in re.findall("\[(.*?)\]", type_net)] | |
return layers_sizes | |