'--output', action='store', type='string', dest='outputDir', default='train_simple/', help='output directory') parser.add_option('-c', '--config', action='store', type='string', dest='config', default='train_config_threelayer.yml', help='configuration file') (options, args) = parser.parse_args() yamlConfig = parse_config(options.config) if os.path.isdir(options.outputDir): #raise Exception('output directory must not exists yet') raw_input( "Warning: output directory exists. Press Enter to continue...") else: os.mkdir(options.outputDir) X_train_val, X_test, y_train_val, y_test, labels = get_features( options, yamlConfig) model_constraint = getattr(models, yamlConfig['KerasModelRetrain']) # Instantiate new model with added custom constraints if 'L1RegR' in yamlConfig:
#X_test = X_test.reshape(10000, 784) X_test = X_test.astype('float32') X_test /= 255 Y_test = to_categorical(y_test, nclasses) configs = [str(config) for config in options.configs.split(',')] df = pd.DataFrame() fpr = {} tpr = {} auc1 = {} for cfg in configs: config = parse_config(cfg) if 'cnn' in config['KerasModel']: img_rows, img_cols = 28, 28 if config['DataFormat'] == 'channels_first': X_test = X_test.reshape(X_test.shape[0], 1, img_rows, img_cols) else: X_test = X_test.reshape(X_test.shape[0], img_rows, img_cols, 1) else: X_test = X_test.reshape(10000, 784) if config['KerasLoss'] == 'squared_hinge': Y_test = to_categorical(y_test, nclasses) * 2 - 1 outdir = config['OutputDir'] if options.fashionMNIST: outdir = 'fashionMNIST_' + outdir model_name = config['KerasModel']
generated_image = G( [gan_input_particle, gan_input_energy, gan_input_noise]) d_proba = D([generated_image, gan_input_particle, gan_input_energy]) GAN = Model(input=[gan_input_particle, gan_input_energy, gan_input_noise], output=d_proba) # temporarily making D untrainable so the summary shows that D won't be trainale during the GAN. # We reset it during training, and the freeze it every cycle. train.make_trainable(D, False) GAN.compile(optimizer=train.optimizer(), loss=train.wasser_loss) print 'GAN' print GAN.summary() train.make_trainable(D, True) return GAN if __name__ == '__main__': # parse args path2config = sys.argv[1] args = train.parse_config(path2config) # This model has 5x5 hard coded assert args['cropped_width'] == 5 G = local_generator(args) D = local_discriminator(args) GAN = gan(G, D, args) train.train(G, D, GAN, args)
uem_file = os.path.join(TEST_DATA_PATH, 'uem') der_uem = score_der_uem( hyp=os.path.join(args.model_dir, 'final_{}_hyp.rttm'.format(args.checkpoint)), ref=os.path.join(args.model_dir, 'final_{}_ref.rttm'.format(args.checkpoint)), outfile=os.path.join(args.model_dir, 'final_hyp_uem.derlog'), uem=uem_file, collar=0.25) rpkl['full_der_uem'] = der_uem print('({}) Full test DER (uem): {}'.format(args.cfg, rpkl['full_der_uem'])) pickle.dump(rpkl, open(results_pkl, 'wb')) if __name__ == "__main__": args = parse_args() args = parse_config(args) uvloop.install() rpkl_path = os.path.join(args.model_dir, 'results.p') if not os.path.isfile(rpkl_path): print('No results.p found') else: device = torch.device('cuda') TEST_DATA_PATH = args.diar_data generator = setup() extract_and_diarize(generator, TEST_DATA_PATH, device)