#from pyhealth.models.ecg.rcrnet import RCRNet as model
#from pyhealth.models.ecg.rf import RandomForest as model
#from pyhealth.models.ecg.xgboost import XGBoost as model
from pyhealth.evaluation.evaluator import func

data_dir = os.path.join(root_dir, 'datasets', 'ecg')

expdata_id = '2020.1104.data.diagnose.ecg'

# set up the datasets
cur_dataset = expdata_generator(expdata_id, root_dir=root_dir)
cur_dataset.get_exp_data(sel_task='diagnose', data_root=data_dir)
cur_dataset.load_exp_data()
cur_dataset.show_data()

# initialize the model for training
expmodel_id = '2020.1104.ecg.diagnose.'
clf = model(expmodel_id=expmodel_id, n_epoch=10, use_gpu=True)
clf.fit(cur_dataset.train, cur_dataset.valid)

# load the best model for inference
clf.load_model()
clf.inference(cur_dataset.test)
results = clf.get_results()
print(results)

# evaluate the model
r = func(results['hat_y'], results['y'])
print(r)

    # root_dir = os.path.abspath(os.path.join(__file__, "../../.."))
    data_dir = os.path.join(root_dir, 'datasets', 'cms')

    expdata_id = '2020.0810.data.mortality.mimic'

    # set up the datasets
    cur_dataset = expdata_generator(expdata_id, root_dir=root_dir)
    cur_dataset.get_exp_data(sel_task='mortality', data_root=data_dir)
    cur_dataset.load_exp_data()
    cur_dataset.show_data()

    # initialize the model for training
    # turn on GPU by setting use_gpu to True
    expmodel_id = '2020.0810.gru.data.mortality.mimic.gpu'
    clf = model(expmodel_id=expmodel_id,
                n_batchsize=20,
                use_gpu=True,
                n_epoch=100,
                gpu_ids='0,1')
    clf.fit(cur_dataset.train, cur_dataset.valid)

    # load the best model for inference
    clf.load_model()
    clf.inference(cur_dataset.test)
    pred_results = clf.get_results()
    print(pred_results['hat_y'])

    # evaluate the model
    r = func(pred_results['hat_y'], pred_results['y'])
    print(r)