clearml-docs/docs/clearml_sdk/clearml_sdk.md
2022-07-12 12:33:21 +03:00

119 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Overview
---
The ClearML Python Package supports the [automatic logging](../fundamentals/logger.md#automatic-reporting) that documents
experiments for you, and an extensive set of powerful features and functionality you can use to improve experimentation
and other workflows.
:::tip Installation
For installation instructions, see [Getting Started](../getting_started/ds/ds_first_steps.md#install-clearml).
:::
The ClearML Python Package collects the scripts entire execution information, including:
* Git repository (branch, commit ID, and uncommitted changes)
* Working directory and entry point
* Hyperparameters
* Initial weights model, model snapshots (checkpoints), output model
* Artifacts, metrics, logs, other reported data (from libraries and visualization toolkits), and debug samples.
In conjunction with the ClearML Hosted Service (or self-hosted [ClearML Server](../deploying_clearml/clearml_server.md))
and [ClearML Agent](../clearml_agent.md), the ClearML Python Package allows you and your teammates to collaborate
programmatically and use the [ClearML Web UI](../webapp/webapp_overview.md).
## Classes and Modules
### Task
The `Task` class is the code template for all Task features and functionality including:
* Data collection and storage from scripts
* Automatic bindings with frameworks, libraries, and visualization tools
* A robust set of methods for Task execution (cloning, connecting parameter dictionaries, configurations, and models)
* and more!
See an [overview](task_sdk.md) of `Task`'s pythonic methods or the [Task SDK reference page](task_sdk.md).
### Model
The `model` module contains three classes that provide support for working with models in ClearML:
* `Model` - represents an existing model in ClearML that can be loaded and connected to a Task
* `InputModel` - represents an existing model that you can load into ClearML
* `OutputModel` - represents the experiment output model that is always connected to the Task
See an [overview](../clearml_sdk/model_sdk.md) of the Model classes' pythonic methods, or the SDK reference pages for [`Model`](../references/sdk/model_model.md),
[`InputModel`](../references/sdk/model_inputmodel.md), and [`OutputModel`](../references/sdk/model_outputmodel.md).
### Logger
The `Logger` class is the ClearML console log and metric statistics interface. The class contains methods for:
* Explicit reporting
* Setting an upload destination for debug sample storage
* Controlling ClearML's logging of TensorBoard and Matplotlib outputs
See the [Logger SDK reference page](../references/sdk/logger.md).
### Hyperparameter Optimization
ClearML's `optimization` module includes classes that support hyperparameter optimization:
* [HyperParameterOptimizer](../references/sdk/automation_controller_pipelinecontroller.md) - Hyperparameter search
controller class
* Optimization search strategy classes including [Optuna](../references/sdk/hpo_optuna_optuna_optimizeroptuna.md), [HpBandSter](../references/sdk/hpo_hpbandster_bandster_optimizerbohb.md),
[GridSearch](../references/sdk/hpo_optimization_gridsearch.md), [RandomSearch](../references/sdk/hpo_optimization_randomsearch.md),
and a base [SearchStrategy](https://github.com/allegroai/clearml/blob/master/clearml/automation/optimization.py#L310)
that can be customized
See the [HyperParameterOptimizer SDK reference page](../references/sdk/hpo_optimization_hyperparameteroptimizer.md).
### Pipeline
ClearML's `automation` module includes classes that support creating pipelines:
* [PipelineController](../pipelines/pipelines_sdk_tasks.md) - A pythonic interface for
defining and configuring a pipeline controller and its steps. The controller and steps can be functions in your
python code, or existing ClearML [tasks](../fundamentals/task.md).
* [PipelineDecorator](../pipelines/pipelines_sdk_function_decorators.md) - A set
of Python decorators which transform your functions into the pipeline controller and steps.
### Dataset
The `Dataset` class supports creating, modifying, and managing datasets,
as well as retrieving them for use in code.
See [ClearML Data](../clearml_data/clearml_data.md) or the [Dataset SDK reference page](../references/sdk/dataset.md).
### StorageManager
The `StorageManager` class provides support for downloading and uploading from storage,
including local folders, S3, Google Cloud Storage, Azure Storage, and http(s).
See the [StorageManager SDK reference page](../references/sdk/storage.md).
### APIClient
The `APIClient` class provides a Pythonic interface to access ClearML's backend REST API.
See an [overview](apiclient_sdk.md) for APIClient usage.
### ClearmlJob
Use the ClearmlJob to create and manage jobs based on existing tasks. The class supports changing a job's parameters,
configurations, and other execution details.
See reference page [here](../references/sdk/automation_job_clearmljob.md).
### AutoScaler
The `AutoScaler` class facilitates implementing resource budgeting. See class methods [here](https://github.com/allegroai/clearml/blob/master/clearml/automation/auto_scaler.py).
ClearML also provides a class specifically for AWS autoscaling. See [code](https://github.com/allegroai/clearml/blob/master/clearml/automation/aws_auto_scaler.py#L22)
and [example script](https://github.com/allegroai/clearml/blob/master/examples/services/aws-autoscaler/aws_autoscaler.py).
### TaskScheduler
The `TaskScheduler` class supports methods for scheduling periodic execution (like cron jobs). See the [code](https://github.com/allegroai/clearml/blob/master/clearml/automation/scheduler.py#L481)
and [example](https://github.com/allegroai/clearml/blob/master/examples/scheduler/cron_example.py).
### TriggerScheduler
The `TriggerScheduler` class facilitates triggering task execution in the case that specific events occur in the system
(e.g. model publication, dataset creation, task failure). See [code](https://github.com/allegroai/clearml/blob/master/clearml/automation/trigger.py#L148)
and [usage example](https://github.com/allegroai/clearml/blob/master/examples/scheduler/trigger_example.py).
## Examples
The `clearml` GitHub repository includes an [examples folder](https://github.com/allegroai/clearml/tree/master/examples)
with example scripts demonstrating how to use the various functionalities of the ClearML SDK.
These examples are pre-loaded in the [ClearML Hosted Service](https://app.clear.ml), and can be viewed, cloned,
and edited in the ClearML Web UI's `ClearML Examples` project. The examples are each explained in the [examples section](../guides/main.md).