def main(): ''' Initialize everything and train ''' params = get_parser().parse_args() print(params) if torch.cuda.is_available() and not params.cuda: print( "WARNING: You have a CUDA device, so you should probably run with --cuda" ) device = 'cuda:0' if torch.cuda.is_available() and params.cuda else 'cpu' params.device = device init_seed(params) test_data, pretrain_data, cell_type_name_map = init_dataset() avg_score_direct = np.zeros((len(test_data), 5)) for idx, unlabeled_data in enumerate(test_data): print(unlabeled_data.metadata) if unlabeled_data.metadata == 'Brain_Myeloid': continue #leave one tissue out labeled_data = test_data[:idx] + test_data[idx + 1:] n_clusters = len(np.unique(unlabeled_data.y)) mars = MARS(n_clusters, params, labeled_data, unlabeled_data, pretrain_data[idx], hid_dim_1=1000, hid_dim_2=100) adata, landmarks, scores = mars.train(evaluation_mode=True) mars.name_cell_types(adata, landmarks, cell_type_name_map) #adata.write(params.MODEL_DIR+tissue+'/'+tissue+'.h5ad') avg_score_direct[idx, 0] = scores['accuracy'] avg_score_direct[idx, 1] = scores['f1_score'] avg_score_direct[idx, 2] = scores['nmi'] avg_score_direct[idx, 3] = scores['adj_rand'] avg_score_direct[idx, 4] = scores['adj_mi'] print('{}: Acc {}, F1_score {}, NMI {}, Adj_Rand {}, Adj_MI {}'.format( unlabeled_data.metadata, scores['accuracy'], scores['f1_score'], scores['nmi'], scores['adj_rand'], scores['adj_mi'])) avg_score_direct = np.mean(avg_score_direct, axis=0) print('\nAverage: Acc {}, F1_score {}, NMI {}, Adj_Rand {}, Adj_MI {}\n'. format(avg_score_direct[0], avg_score_direct[1], avg_score_direct[2], avg_score_direct[3], avg_score_direct[4]))
from args_parser import get_parser from model.mars import MARS from model.experiment_dataset import ExperimentDataset import warnings warnings.filterwarnings('ignore') ## set seed torch.manual_seed(0) import random random.seed(0) np.random.seed(0) ## pytorch params params, unknown = get_parser().parse_known_args() params.cuda = True device = 'cuda:0' if torch.cuda.is_available() and params.cuda else 'cpu' params.device = device def run_MARS(train_adata, test_adata, result_dir, prefix="MARS", celltype_col="cell.type"): '''Run MARS pipeline ''' adata = train_adata.concatenate(test_adata)
import args_parser from abalone import FieldTemplate from abalone.AbaloneModel import AbaloneAgent from graphics.QSyncManager import iteration_queue from graphics.Qt5PlayableGraphic import Qt5PlayableGraphic args = args_parser.get_parser(add_graphic_option=False).parse_args() if __name__ == '__main__': abalone_model = AbaloneAgent(edge_size=args.board_size, vector_generator=FieldTemplate.basic_start) graphic_agent = Qt5PlayableGraphic() graphic_agent.init_ui(abalone_model.game_vector) handler_queue = graphic_agent.handler_queue while True: for event in iteration_queue(handler_queue): pass
import random import args_parser from abalone import FieldTemplate from abalone.AbaloneModel import AbaloneAgent from abalone.env.AbaloneEnvironment import AbaloneEnvironment from graphics.qt5.Qt5Graphic import Qt5Graphic from graphics.text.TextGraphic import TextGraphic def random_policy(action_space: int) -> list: return [random.randrange(0, action_space), random.randrange(0, action_space), random.randrange(0, action_space)] args = args_parser.get_parser().parse_args() if __name__ == '__main__': abalone_model = AbaloneAgent(edge_size=args.board_size, vector_generator=FieldTemplate.basic_start) env = AbaloneEnvironment(abalone_model) graphic = TextGraphic() if args.graphic == "text" else Qt5Graphic() graphic.init_ui(env.abalone_model.game_vector) game_success, game_total = 0, 0 total_game, max_turns = 0, 0 while True: _, info = env.action(random_policy(env.action_space)) success, drops, _, _, end = info game_success += sum(success) game_total += 3