def test_predict_no_preprocessor_no_training(): with tempfile.TemporaryDirectory() as tmpdir: checkpoint = LightGBMCheckpoint.from_model(booster=model, path=tmpdir) predictor = LightGBMPredictor.from_checkpoint(checkpoint) data_batch = np.array([[1, 2], [3, 4], [5, 6]]) predictions = predictor.predict(data_batch) assert len(predictions) == 3
def test_init(): preprocessor = DummyPreprocessor() preprocessor.attr = 1 predictor = LightGBMPredictor(model=model, preprocessor=preprocessor) with tempfile.TemporaryDirectory() as tmpdir: # This somewhat convoluted procedure is the same as in the # Trainers. The reason for saving model to disk instead # of directly to the dict as bytes is due to all callbacks # following save to disk logic. GBDT models are small # enough that IO should not be an issue. model.save_model(os.path.join(tmpdir, MODEL_KEY)) save_preprocessor_to_dir(preprocessor, tmpdir) checkpoint = Checkpoint.from_directory(tmpdir) checkpoint_predictor = LightGBMPredictor.from_checkpoint(checkpoint) assert get_num_trees(checkpoint_predictor.model) == get_num_trees( predictor.model) assert checkpoint_predictor.preprocessor.attr == predictor.preprocessor.attr