Beispiel #1
0
    ref_fpath = fpath
    for fold_idx, (train_paths, validation_path) in enumerate(splits):
        fpath = ref_fpath.replace('<this_fold>', str(1+fold_idx))

        ###################################################################################
        # # # LOAD DATA
        ###################################################################################

        print(f"Using CV fold {1+fold_idx}/{len(splits)}")
        data = get_data_full(train_paths=train_paths, validation_path=validation_path, test_path=test_path,
                             **data_kwargs)

        # TRAIN MODEL
        try:
            print('...training model')
            model.fit([x[0] for x in data[0]['mols']], data[0]['y'])
            print('...trained model')
        except KeyboardInterrupt:
            pass

        ###################################################################################
        # # # TEST MODEL
        ###################################################################################

        print('...testing model')
        tstamp = datetime.datetime.utcnow().strftime('%m-%d-%Y_%H-%M')
        # Need to define predict_on_batch to be compatible
        model.predict_on_batch = model.predict
        _ = test_model(model, data, fpath, tstamp=tstamp, batch_size=1)
        print('...tested model')