model.build() model.set_up_train() model.restore(save_dir=SAVE_DIR) model.prepare_test() for activate_k in ACTIVATE_K_SET: performance_th = model.test_th(activate_k, K_SET) performance_vq = model.test_vq(activate_k, K_SET) write_pkl({ 'th': performance_th, 'vq': performance_vq }, path=PKL_DIR + FILE_ID + '_{}.pkl'.format(activate_k)) cwrite = CsvWriter2(2) key_set = [ 'train_nmi', 'test_nmi', 'te_tr_suf', 'te_te_suf', 'te_tr_precision_at_k', 'te_te_precision_at_k', 'te_tr_recall_at_k', 'te_te_recall_at_k' ] for key in key_set: cwrite.add_header(0, str(key) + "_th") cwrite.add_header(1, str(key) + "_vq") content = '' if 'suf' in str(key): content = listformat(performance_th[key]) elif 'at_k' in str(key): content = listformat(performance_th[key]) else: content = performance_th[key]
# load data datasetmanager = DATASETMANAGER_DICT[args.dataset] dm_train, dm_val, dm_test = datasetmanager(args.ltype, nsclass=args.nsclass) for v in [dm_train, dm_val, dm_test]: v.print_shape() model = DeepMetric(dm_train, dm_val, dm_test, LOG_DIR + FILE_ID + '.log', args) model.build() model.set_up_train() try: model.restore(save_dir=SAVE_DIR) except AttributeError: model.initialize() model.train(epoch=args.epoch, save_dir=SAVE_DIR, board_dir=BOARD_DIR) model.restore(save_dir=SAVE_DIR) model.prepare_test() performance = model.test_metric(K_SET) key_set = [ 'te_tr_recall_at_k', 'te_tr_precision_at_k', 'te_te_recall_at_k', 'te_te_precision_at_k' ] cwrite = CsvWriter2(1) for key in key_set: cwrite.add_header(0, str(key)) cwrite.add_content(0, listformat(performance[key])) cwrite.write(CSV_DIR + FILE_ID + '.csv') write_pkl(performance, path=PKL_DIR + FILE_ID + '.pkl')