You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

test_python_log.py 1.6 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. from flaml import AutoML
  2. from sklearn.datasets import load_boston
  3. import os
  4. import unittest
  5. import logging
  6. import tempfile
  7. import io
  8. class TestLogging(unittest.TestCase):
  9. def test_logging_level(self):
  10. from flaml import logger, logger_formatter
  11. with tempfile.TemporaryDirectory() as d:
  12. training_log = os.path.join(d, "training.log")
  13. # Configure logging for the FLAML logger
  14. # and add a handler that outputs to a buffer.
  15. logger.setLevel(logging.INFO)
  16. buf = io.StringIO()
  17. ch = logging.StreamHandler(buf)
  18. ch.setFormatter(logger_formatter)
  19. logger.addHandler(ch)
  20. # Run a simple job.
  21. automl = AutoML()
  22. automl_settings = {
  23. "time_budget": 1,
  24. "metric": 'mse',
  25. "task": 'regression',
  26. "log_file_name": training_log,
  27. "log_training_metric": True,
  28. "n_jobs": 1,
  29. "model_history": True,
  30. }
  31. X_train, y_train = load_boston(return_X_y=True)
  32. n = len(y_train) >> 1
  33. automl.fit(X_train=X_train[:n], y_train=y_train[:n],
  34. X_val=X_train[n:], y_val=y_train[n:],
  35. **automl_settings)
  36. # Check if the log buffer is populated.
  37. self.assertTrue(len(buf.getvalue()) > 0)
  38. import pickle
  39. with open('automl.pkl', 'wb') as f:
  40. pickle.dump(automl, f, pickle.HIGHEST_PROTOCOL)
  41. print(automl.__version__)