Python mlflow.create_experiment() Examples
The following are 19
code examples of mlflow.create_experiment().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
mlflow
, or try the search function
.
Example #1
Source File: loggers.py From OpenKiwi with GNU Affero General Public License v3.0 | 6 votes |
def _retrieve_mlflow_experiment_id(name, create=False): experiment_id = None if name: existing_experiment = MlflowClient().get_experiment_by_name(name) if existing_experiment: experiment_id = existing_experiment.experiment_id else: if create: experiment_id = mlflow.create_experiment(name) else: raise Exception( 'Experiment "{}" not found in {}'.format( name, mlflow.get_tracking_uri() ) ) return experiment_id
Example #2
Source File: test_model.py From mlflow with Apache License 2.0 | 6 votes |
def test_model_log(): with TempDir(chdr=True) as tmp: experiment_id = mlflow.create_experiment("test") sig = ModelSignature(inputs=Schema([ColSpec("integer", "x"), ColSpec("integer", "y")]), outputs=Schema([ColSpec(name=None, type="double")])) input_example = {"x": 1, "y": 2} with mlflow.start_run(experiment_id=experiment_id) as r: Model.log("some/path", TestFlavor, signature=sig, input_example=input_example) local_path = _download_artifact_from_uri("runs:/{}/some/path".format(r.info.run_id), output_path=tmp.path("")) loaded_model = Model.load(os.path.join(local_path, "MLmodel")) assert loaded_model.run_id == r.info.run_id assert loaded_model.artifact_path == "some/path" assert loaded_model.flavors == { "flavor1": {"a": 1, "b": 2}, "flavor2": {"x": 1, "y": 2}, } assert loaded_model.signature == sig path = os.path.join(local_path, loaded_model.saved_input_example_info["artifact_path"]) x = _dataframe_from_json(path) assert x.to_dict(orient="records")[0] == input_example
Example #3
Source File: test_runs_artifact_repo.py From mlflow with Apache License 2.0 | 5 votes |
def test_runs_artifact_repo_uses_repo_download_artifacts(): """ The RunsArtifactRepo should delegate `download_artifacts` to it's self.repo.download_artifacts function """ artifact_location = "s3://blah_bucket/" experiment_id = mlflow.create_experiment("expr_abcd", artifact_location) with mlflow.start_run(experiment_id=experiment_id): run_id = mlflow.active_run().info.run_id runs_repo = RunsArtifactRepository('runs:/{}'.format(run_id)) runs_repo.repo = Mock() runs_repo.download_artifacts('artifact_path', 'dst_path') runs_repo.repo.download_artifacts.assert_called_once()
Example #4
Source File: loggers.py From OpenKiwi with GNU Affero General Public License v3.0 | 5 votes |
def configure( self, run_uuid, experiment_name, tracking_uri, run_name=None, always_log_artifacts=False, create_run=True, create_experiment=True, nest_run=True, ): if mlflow.active_run() and not nest_run: logger.info('Ending previous MLFlow run: {}.'.format(self.run_uuid)) mlflow.end_run() self.always_log_artifacts = always_log_artifacts self._experiment_name = experiment_name self._run_name = run_name # MLflow specific if tracking_uri: mlflow.set_tracking_uri(tracking_uri) if run_uuid: existing_run = MlflowClient().get_run(run_uuid) if not existing_run and not create_run: raise FileNotFoundError( 'Run ID {} not found under {}'.format( run_uuid, mlflow.get_tracking_uri() ) ) experiment_id = self._retrieve_mlflow_experiment_id( experiment_name, create=create_experiment ) return mlflow.start_run( run_uuid, experiment_id=experiment_id, run_name=run_name, nested=nest_run, )
Example #5
Source File: test_fluent.py From mlflow with Apache License 2.0 | 5 votes |
def test_get_experiment_by_name(): with TempDir(chdr=True): name = "Random experiment %d" % random.randint(1, 1e6) exp_id = mlflow.create_experiment(name) experiment = mlflow.get_experiment_by_name(name) assert experiment.experiment_id == exp_id
Example #6
Source File: test_fluent.py From mlflow with Apache License 2.0 | 5 votes |
def test_get_experiment_by_id(): with TempDir(chdr=True): name = "Random experiment %d" % random.randint(1, 1e6) exp_id = mlflow.create_experiment(name) experiment = mlflow.get_experiment(exp_id) print(experiment) assert experiment.experiment_id == exp_id
Example #7
Source File: test_fluent.py From mlflow with Apache License 2.0 | 5 votes |
def test_get_experiment_id_in_databricks_with_experiment_defined_in_env_returns_env_experiment_id(): with TempDir(chdr=True): exp_name = "random experiment %d" % random.randint(1, 1e6) exp_id = mlflow.create_experiment(exp_name) notebook_id = str(int(exp_id) + 73) HelperEnv.set_values(experiment_id=exp_id) with mock.patch("mlflow.tracking.fluent.is_in_databricks_notebook") as notebook_detection_mock,\ mock.patch("mlflow.tracking.fluent.get_notebook_id") as notebook_id_mock: notebook_detection_mock.side_effect = lambda *args, **kwargs: True notebook_id_mock.side_effect = lambda *args, **kwargs: notebook_id assert _get_experiment_id() != notebook_id assert _get_experiment_id() == exp_id
Example #8
Source File: test_fluent.py From mlflow with Apache License 2.0 | 5 votes |
def test_get_experiment_id_in_databricks_with_active_experiment_returns_active_experiment_id(): with TempDir(chdr=True): exp_name = "random experiment %d" % random.randint(1, 1e6) exp_id = mlflow.create_experiment(exp_name) mlflow.set_experiment(exp_name) notebook_id = str(int(exp_id) + 73) with mock.patch("mlflow.tracking.fluent.is_in_databricks_notebook") as notebook_detection_mock,\ mock.patch("mlflow.tracking.fluent.get_notebook_id") as notebook_id_mock: notebook_detection_mock.return_value = True notebook_id_mock.return_value = notebook_id assert _get_experiment_id() != notebook_id assert _get_experiment_id() == exp_id
Example #9
Source File: test_fluent.py From mlflow with Apache License 2.0 | 5 votes |
def test_get_experiment_id_with_active_experiment_returns_active_experiment_id(): # Create a new experiment and set that as active experiment with TempDir(chdr=True): name = "Random experiment %d" % random.randint(1, 1e6) exp_id = mlflow.create_experiment(name) assert exp_id is not None mlflow.set_experiment(name) assert _get_experiment_id() == exp_id
Example #10
Source File: test_tracking.py From mlflow with Apache License 2.0 | 5 votes |
def test_search_runs_multiple_experiments(): experiment_ids = [mlflow.create_experiment("exp__{}".format(exp_id)) for exp_id in range(1, 4)] for eid in experiment_ids: with mlflow.start_run(experiment_id=eid): mlflow.log_metric("m0", 1) mlflow.log_metric("m_{}".format(eid), 2) assert len(MlflowClient().search_runs(experiment_ids, "metrics.m0 > 0", ViewType.ALL)) == 3 assert len(MlflowClient().search_runs(experiment_ids, "metrics.m_1 > 0", ViewType.ALL)) == 1 assert len(MlflowClient().search_runs(experiment_ids, "metrics.m_2 = 2", ViewType.ALL)) == 1 assert len(MlflowClient().search_runs(experiment_ids, "metrics.m_3 < 4", ViewType.ALL)) == 1
Example #11
Source File: test_tracking.py From mlflow with Apache License 2.0 | 5 votes |
def test_get_artifact_uri_appends_to_uri_path_component_correctly( artifact_location, expected_uri_format): client = MlflowClient() client.create_experiment("get-artifact-uri-test", artifact_location=artifact_location) mlflow.set_experiment("get-artifact-uri-test") with mlflow.start_run(): run_id = mlflow.active_run().info.run_id for artifact_path in ["path/to/artifact", "/artifact/path", "arty.txt"]: artifact_uri = mlflow.get_artifact_uri(artifact_path) assert artifact_uri == tracking.artifact_utils.get_artifact_uri(run_id, artifact_path) assert artifact_uri == expected_uri_format.format( run_id=run_id, path=artifact_path.lstrip("/"))
Example #12
Source File: test_tracking.py From mlflow with Apache License 2.0 | 5 votes |
def test_set_experiment_with_zero_id(reset_mock): reset_mock(MlflowClient, "get_experiment_by_name", mock.Mock(return_value=attrdict.AttrDict( experiment_id=0, lifecycle_stage=LifecycleStage.ACTIVE))) reset_mock(MlflowClient, "create_experiment", mock.Mock()) mlflow.set_experiment("my_exp") MlflowClient.get_experiment_by_name.assert_called_once() MlflowClient.create_experiment.assert_not_called()
Example #13
Source File: test_tracking.py From mlflow with Apache License 2.0 | 5 votes |
def test_list_experiments(): def _assert_exps(ids_to_lifecycle_stage, view_type_arg): result = set([(exp.experiment_id, exp.lifecycle_stage) for exp in client.list_experiments(view_type=view_type_arg)]) assert result == set([(exp_id, stage) for exp_id, stage in ids_to_lifecycle_stage.items()]) experiment_id = mlflow.create_experiment("exp_1") assert experiment_id == '1' client = tracking.MlflowClient() _assert_exps({'0': LifecycleStage.ACTIVE, '1': LifecycleStage.ACTIVE}, ViewType.ACTIVE_ONLY) _assert_exps({'0': LifecycleStage.ACTIVE, '1': LifecycleStage.ACTIVE}, ViewType.ALL) _assert_exps({}, ViewType.DELETED_ONLY) client.delete_experiment(experiment_id) _assert_exps({'0': LifecycleStage.ACTIVE}, ViewType.ACTIVE_ONLY) _assert_exps({'0': LifecycleStage.ACTIVE, '1': LifecycleStage.DELETED}, ViewType.ALL) _assert_exps({'1': LifecycleStage.DELETED}, ViewType.DELETED_ONLY)
Example #14
Source File: test_tracking.py From mlflow with Apache License 2.0 | 5 votes |
def test_set_experiment(): with pytest.raises(TypeError): mlflow.set_experiment() # pylint: disable=no-value-for-parameter with pytest.raises(Exception): mlflow.set_experiment(None) with pytest.raises(Exception): mlflow.set_experiment("") name = "random_exp" exp_id = mlflow.create_experiment(name) mlflow.set_experiment(name) with start_run() as run: assert run.info.experiment_id == exp_id another_name = "another_experiment" mlflow.set_experiment(another_name) exp_id2 = mlflow.tracking.MlflowClient().get_experiment_by_name(another_name) with start_run() as another_run: assert another_run.info.experiment_id == exp_id2.experiment_id
Example #15
Source File: test_tracking.py From mlflow with Apache License 2.0 | 5 votes |
def test_create_experiments_with_bad_names(): # None for name with pytest.raises(MlflowException) as e: mlflow.create_experiment(None) assert e.message.contains("Invalid experiment name: 'None'") # empty string name with pytest.raises(MlflowException) as e: mlflow.create_experiment("") assert e.message.contains("Invalid experiment name: ''")
Example #16
Source File: test_tracking.py From mlflow with Apache License 2.0 | 5 votes |
def test_create_experiment_with_duplicate_name(): name = "popular_name" exp_id = mlflow.create_experiment(name) with pytest.raises(MlflowException): mlflow.create_experiment(name) tracking.MlflowClient().delete_experiment(exp_id) with pytest.raises(MlflowException): mlflow.create_experiment(name)
Example #17
Source File: test_tracking.py From mlflow with Apache License 2.0 | 5 votes |
def test_create_experiment(): with pytest.raises(TypeError): mlflow.create_experiment() # pylint: disable=no-value-for-parameter with pytest.raises(Exception): mlflow.create_experiment(None) with pytest.raises(Exception): mlflow.create_experiment("") exp_id = mlflow.create_experiment( "Some random experiment name %d" % random.randint(1, 1e6)) assert exp_id is not None
Example #18
Source File: test_utils.py From mlflow with Apache License 2.0 | 5 votes |
def test_fetch_create_and_log(tmpdir): entry_point_name = "entry_point" parameters = { "method_name": "string", } entry_point = _project_spec.EntryPoint(entry_point_name, parameters, "run_model.sh") mock_fetched_project = _project_spec.Project(None, {entry_point_name: entry_point}, None, "my_project") experiment_id = mlflow.create_experiment("test_fetch_project") expected_dir = tmpdir project_uri = "http://someuri/myproject.git" user_param = {"method_name": "newton"} with mock.patch("mlflow.projects.utils._fetch_project", return_value=expected_dir): with mock.patch("mlflow.projects._project_spec.load_project", return_value=mock_fetched_project): work_dir = fetch_and_validate_project( "", "", entry_point_name, user_param) project = load_project(work_dir) assert mock_fetched_project == project assert expected_dir == work_dir # Create a run active_run = get_or_create_run( run_id=None, uri=project_uri, experiment_id=experiment_id, work_dir=work_dir, version=None, entry_point=entry_point_name, parameters=user_param) # check tags run = mlflow.get_run(active_run.info.run_id) assert MLFLOW_PROJECT_ENTRY_POINT in run.data.tags assert MLFLOW_SOURCE_NAME in run.data.tags assert entry_point_name == run.data.tags[MLFLOW_PROJECT_ENTRY_POINT] assert project_uri == run.data.tags[MLFLOW_SOURCE_NAME] assert user_param == run.data.params
Example #19
Source File: evaluate.py From orbyter-cookiecutter with MIT License | 4 votes |
def log_experiment( params={}, metrics={}, artifacts={}, experiment_name="my_experiment", mlflow_tracking_uri="./experiments", mlflow_artifact_location=None, ): """ Evaluate the model and log it with mlflow Args: params (dict): dictionary of parameters to log metrics (dict): dictionary of metrics to log artifacts (dict): dictionary of artifacts (path) to log experiment_name (str): experiment name mlflow_tracking_uri (str): path or sql url for mlflow logging mlflow_artifact_location (str): path or s3bucket url for artifact logging. If none, it will default to a standard. Returns: None """ # Try to create an experiment if it doesn't exist try: exp_0 = mlflow.create_experiment( experiment_name, artifact_location=mlflow_artifact_location ) # set uri mlflow.set_tracking_uri(mlflow_tracking_uri) logger.info(f"Created new experiment id: {exp_0}") except Exception as E: logger.info(f"{E}. Writing to same URI/artifact store") # Always set the experiment mlflow.set_experiment(experiment_name) logger.info(f"Running experiment {experiment_name}") with mlflow.start_run(): # param logging for key, val in params.items(): logger.info(f"Logging param {key}") mlflow.log_param(key, val) # metric logging for key, val in metrics.items(): logger.info(f"Logging metric {key}") mlflow.log_metric(key, val) # artifact logging for key, val in artifacts.items(): logger.info(f"Logging artifact {key}") mlflow.log_artifact(val)