From 9e975d944bcf9a4042774516bbd6d30ec2833b15 Mon Sep 17 00:00:00 2001 From: pollfly <75068813+pollfly@users.noreply.github.com> Date: Sun, 28 Jan 2024 11:35:58 +0200 Subject: [PATCH] Add jsonargparse integration page (#764) --- docs/img/integrations_jsonargparse.png | Bin 0 -> 36740 bytes docs/integrations/jsonargparse.md | 68 +++++++++++++++++++++++++ sidebars.js | 2 +- 3 files changed, 69 insertions(+), 1 deletion(-) create mode 100644 docs/img/integrations_jsonargparse.png create mode 100644 docs/integrations/jsonargparse.md diff --git a/docs/img/integrations_jsonargparse.png b/docs/img/integrations_jsonargparse.png new file mode 100644 index 0000000000000000000000000000000000000000..5d5b4bb59033c26f92d06907acebfb0173911a1a GIT binary patch literal 36740 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 %7(#BUa@K& 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 literal 0 HcmV?d00001 diff --git a/docs/integrations/jsonargparse.md b/docs/integrations/jsonargparse.md new file mode 100644 index 00000000..3bc106d2 --- /dev/null +++ b/docs/integrations/jsonargparse.md @@ -0,0 +1,68 @@ +--- +title: jsonargparse +--- + +:::tip +If you are not already using ClearML, see [Getting Started](../getting_started/ds/ds_first_steps.md) for setup +instructions. +::: + + +[jsonargparse](https://github.com/omni-us/jsonargparse) is a Python package for creating command-line interfaces. +ClearML integrates seamlessly with `jsonargparse` and automatically logs its command-line parameters and connected +configuration files. + +All you have to do is add two lines of code: + +```python +from clearml import Task + +task = Task.init(task_name="", project_name="") +``` + +When the code runs, ClearML logs your command-line arguments, which you can view in the [WebApp](../webapp/webapp_overview.md), +in the experiment's **Configuration > Hyperparameters > Args** section. + +![Jsonargparse integration](../img/integrations_jsonargparse.png) + + +### Automatic Logging Control +By default, when ClearML is integrated into your script, it captures all of your `jsonargparse` parameters. +But, you may want to have more control over what your experiment logs. To control a task's logging of parameters from +argument parsers, use the `auto_connect_arg_parser` parameter of [`Task.init()`](../references/sdk/task.md#taskinit). +Completely disable all automatic logging by setting the parameter to `False`. + +```python +auto_connect_arg_parser=False +``` + +For finer grained control of logged parameters, input a dictionary with parameter-boolean pairs. The `False` value +excludes the specified parameter. Unspecified parameters default to `True`. + +For example, the following code will not log the `Example_1` parameter, but will log all other arguments. + +```python +auto_connect_arg_parser={"Example_1": False} +``` + +To exclude all unspecified parameters, set the `*` key to `False`. For example, the following code will log **only** the +`Example_2` parameter. + +```python +auto_connect_arg_parser={"Example_2": True, "*": False} +``` + +## Remote Execution + +In the UI, you can clone a task multiple times and modify it for execution by the [ClearML Agent](../clearml_agent.md). +The agent executes the code with the modifications you made in the UI, even overriding hardcoded values. + +In the case that you connected a jsonargparse configuration file (e.g. with LightningCLI), make sure to set the +`_ignore_ui_overrides` to `False` in the **CONFIGURATION > HYPERPARAMETERS > ARGS** section. That way, after the customized +experiment is enqueued, the task will use the new values during execution. + + +## Code Examples + +See [code examples](https://github.com/allegroai/clearml/blob/master/examples/frameworks/jsonargparse) demonstrating integrating +ClearML with code that uses `jsonargparse`. diff --git a/sidebars.js b/sidebars.js index 7cec5a63..66f31027 100644 --- a/sidebars.js +++ b/sidebars.js @@ -62,7 +62,7 @@ module.exports = { {'Integrations': [ 'integrations/autokeras', 'integrations/catboost', 'integrations/click', 'integrations/fastai', 'integrations/transformers', - 'integrations/hydra', + 'integrations/hydra', 'integrations/jsonargparse', 'integrations/keras', 'integrations/keras_tuner', 'integrations/lightgbm', 'integrations/matplotlib', 'integrations/megengine', 'integrations/monai', 'integrations/mmcv', 'integrations/optuna',