コード例 #1
0
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]))
コード例 #2
0
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)
コード例 #3
0
ファイル: play_abalone.py プロジェクト: codeaudit/AbaloneRL
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
コード例 #4
0
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