def main(): # Parse the JSON arguments try: config_args = parse_args() except: print("Add a config file using \'--config file_name.json\'") exit(1) # Create the experiment directories _, config_args.summary_dir, config_args.checkpoint_dir = create_experiment_dirs( config_args.experiment_dir) # Reset the default Tensorflow graph tf.reset_default_graph() # Tensorflow specific configuration config = tf.ConfigProto(allow_soft_placement=True) config.gpu_options.allow_growth = True sess = tf.Session(config=config) # Data loading # The batch size is equal to 1 when testing to simulate the real experiment. data_batch_size = config_args.batch_size if config_args.train_or_test == "train" else 1 data = DataLoader(data_batch_size, config_args.shuffle) print("Loading Data...") config_args.img_height, config_args.img_width, config_args.num_channels, \ config_args.train_data_size, config_args.test_data_size = data.load_data() print("Data loaded\n\n") # Model creation print("Building the model...") model = ShuffleNet(config_args) print("Model is built successfully\n\n") # Summarizer creation summarizer = Summarizer(sess, config_args.summary_dir) # Train class trainer = Train(sess, model, data, summarizer) if config_args.train_or_test == 'train': try: print("FLOPs for batch size = " + str(config_args.batch_size) + "\n") calculate_flops() print("Training...") trainer.train() print("Training Finished\n\n") except KeyboardInterrupt: trainer.save_model() elif config_args.train_or_test == 'test': print("FLOPs for single inference \n") calculate_flops() # This can be 'val' or 'test' or even 'train' according to the needs. print("Testing...") trainer.test('val') print("Testing Finished\n\n") else: raise ValueError("Train or Test options only are allowed")
def main(): # Parse the JSON arguments config_args = parse_args() # Create the experiment directories _, config_args.summary_dir, config_args.checkpoint_dir = create_experiment_dirs( config_args.experiment_dir) model = MobileNetV2(config_args) if config_args.cuda: model.cuda() cudnn.enabled = True cudnn.benchmark = True print("Loading Data...") data = BenchPressData(config_args) print("Data loaded successfully\n") trainer = Train(model, data.trainloader, data.testloader, config_args) if config_args.to_train: try: print("Training...") trainer.train() print("Training Finished\n") except KeyboardInterrupt: pass if config_args.to_test: print("Testing...") trainer.test(data.testloader) print("Testing Finished\n")
def main(): # Parse the JSON arguments config_args = parse_args() # Create the experiment directories experiment_dir, summary_dir, checkpoint_dir, output_dir = create_experiment_dirs( config_args.experiment_dir) generator = Generator(config_args.Z_dim, config_args.dim_multiplier, config_args.img_channels) discriminator = Discriminator(config_args.dim_multiplier, config_args.img_channels, config_args.leaky) data_loader = CelebADataLoader(config_args) try: device = torch.device(config_args.device) except: print("Error in choosing your running device \"{}\". Using CPU instead.\n".format(config_args.device)) device = torch.device('cpu') trainer = DCGANTrainer(generator, discriminator, data_loader, device, summary_dir, checkpoint_dir, output_dir, config_args) if config_args.mode == "train": trainer.train() else: raise ValueError("Choose from the following modes: (train)")
def main(): # Parse the JSON arguments config_args = parse_args() # Create the experiment directories _, config_args.summary_dir, config_args.checkpoint_dir = create_experiment_dirs(config_args.experiment_dir) # Reset the default Tensorflow graph tf.reset_default_graph() # Tensorflow specific configuration config = tf.ConfigProto(allow_soft_placement=True) config.gpu_options.allow_growth = True sess = tf.Session(config=config) # Data loading # The batch size is equal to 1 when testing to simulate the real experiment. data_batch_size = config_args.batch_size if config_args.train_or_test == "train" else 1 data = DataLoader(data_batch_size, config_args.shuffle) print("Loading Data...") config_args.img_height, config_args.img_width, config_args.num_channels, \ config_args.train_data_size, config_args.test_data_size = data.load_data() print("Data loaded\n\n") # Model creation print("Building the model...") model = ShuffleNet(config_args) print("Model is built successfully\n\n") # Parameters visualization show_parameters() # Summarizer creation summarizer = Summarizer(sess, config_args.summary_dir) # Train class trainer = Train(sess, model, data, summarizer) if config_args.train_or_test == 'train': try: # print("FLOPs for batch size = " + str(config_args.batch_size) + "\n") # calculate_flops() print("Training...") trainer.train() print("Training Finished\n\n") except KeyboardInterrupt: trainer.save_model() elif config_args.train_or_test == 'test': # print("FLOPs for single inference \n") # calculate_flops() # This can be 'val' or 'test' or even 'train' according to the needs. print("Testing...") trainer.test('val') print("Testing Finished\n\n") else: raise ValueError("Train or Test options only are allowed")
def main(): # Parse the JSON arguments try: config_args = parse_args() except: print("Add a config file using \'--config file_name.json\'") exit(1) # Create the experiment directories _, config_args.summary_dir, config_args.checkpoint_dir = create_experiment_dirs( config_args.experiment_dir) # Reset the default Tensorflow graph tf.reset_default_graph() # Tensorflow specific configuration config = tf.ConfigProto(allow_soft_placement=True) config.gpu_options.allow_growth = True sess = tf.Session(config=config) # Data loading data = DataLoader(config_args.batch_size, config_args.shuffle) print("Loading Data...") config_args.img_height, config_args.img_width, config_args.num_channels, \ config_args.train_data_size, config_args.test_data_size = data.load_data() print("Data loaded\n\n") # Model creation print("Building the model...") model = MobileNet(config_args) print("Model is built successfully\n\n") # Summarizer creation summarizer = Summarizer(sess, config_args.summary_dir) # Train class trainer = Train(sess, model, data, summarizer) if config_args.to_train: try: print("Training...") trainer.train() print("Training Finished\n\n") except KeyboardInterrupt: trainer.save_model() if config_args.to_test: print("Final test!") ans_list = trainer.test('val') # ans_list = trainer.test('train') # print(len(ans_list)) # print(ans_list) print("Testing Finished\n\n")
def main(img): config = 'config/test2.json' with open(config, 'r') as config_file: config_args_dict = json.load(config_file) config_args = edict(config_args_dict) print(config_args) print("\n") # Create the experiment directories _, config_args.summary_dir, config_args.checkpoint_dir = create_experiment_dirs( config_args.experiment_dir) # Reset the default Tensorflow graph tf.reset_default_graph() # Tensorflow specific configuration config = tf.ConfigProto(allow_soft_placement=True) config.gpu_options.allow_growth = True sess = tf.Session(config=config) # Data loading data = DataLoader(config_args.batch_size, config_args.shuffle, img) print("Loading Data...") config_args.img_height, config_args.img_width, config_args.num_channels, \ config_args.train_data_size, config_args.test_data_size = data.load_data() print("Data loaded\n\n") # Model creation print("Building the model...") model = MobileNet(config_args) print("Model is built successfully\n\n") # Summarizer creation summarizer = Summarizer(sess, config_args.summary_dir) # Train class trainer = Train(sess, model, data, summarizer) print("Final test!") ans_list = trainer.test('val') # ans_list = trainer.test('train') # print(len(ans_list)) print(ans_list) print("Testing Finished\n\n")
# except KeyboardInterrupt: # trainer.save_model() # if config_args.to_test: # print("Final test!") # trainer.test('val') # print("Testing Finished\n\n") # trainer.dectect(FaceCropper().generate('fake.png')) if __name__ == '__main__': # main() config_args = parse_args() config_args.img_height, config_args.img_width, config_args.num_channels = ( 224, 224, 3) _, config_args.summary_dir, config_args.checkpoint_dir = create_experiment_dirs( config_args.experiment_dir) config = tf.ConfigProto(allow_soft_placement=True) config.gpu_options.allow_growth = True faces = FaceCropper().generate('maxresdefault.jpg') with tf.Session(config=config) as sess: config_args.batch_size = len(faces) model = MobileNet(config_args) sess.run( tf.group(tf.global_variables_initializer(), tf.local_variables_initializer())) saver = tf.train.Saver(max_to_keep=config_args.max_to_keep, keep_checkpoint_every_n_hours=10, save_relative_paths=True) saver.restore(sess, tf.train.latest_checkpoint(config_args.checkpoint_dir))
def main(): # Parse the JSON arguments try: config_args = parse_args() except: print("Add a config file using \'--config file_name.json\'") exit(1) # Create the experiment directories _, config_args.summary_dir, config_args.checkpoint_dir = create_experiment_dirs( config_args.experiment_dir) # Reset the default Tensorflow graph tf.reset_default_graph() # Tensorflow specific configuration config = tf.ConfigProto(allow_soft_placement=True) config.gpu_options.allow_growth = True sess = tf.Session(config=config) # Data loading data = DataLoader(config_args.batch_size, config_args.shuffle) print("Loading Data...") config_args.img_height, config_args.img_width, config_args.num_channels, \ config_args.train_data_size, config_args.test_data_size = data.load_data() print("Data loaded\n\n") # Model creation print("Building the model...") if config_args.quantize == True: print('Quantized model created') # Quantized model creation activation_quantizer = linear_mid_tread_half_quantizer activation_quantizer_kwargs = {'bit': 2, 'max_value': 2} weight_quantizer = binary_mean_scaling_quantizer weight_quantizer_kwargs = {} model = MobileNetQuantize( config_args, activation_quantizer=activation_quantizer, activation_quantizer_kwargs=activation_quantizer_kwargs, weight_quantizer=weight_quantizer, weight_quantizer_kwargs=weight_quantizer_kwargs) else: print('Full precision model created') model = MobileNet(config_args) print("Model is built successfully\n\n") # Summarizer creation summarizer = Summarizer(sess, config_args.summary_dir) # Train class trainer = Train(sess, model, data, summarizer) if config_args.to_train: try: print("Training...") trainer.train() print("Training Finished\n\n") except KeyboardInterrupt: trainer.save_model() if config_args.to_test: print("Final test!") trainer.test('val') print("Testing Finished\n\n")