2022-12-22 09:36:45 +00:00
---
title: Reports
---
2023-05-28 06:59:24 +00:00
< div class = "vid" >
2023-01-17 15:03:56 +00:00
< iframe style = {{position: ' absolute ' , top: ' 0 ' , left: ' 0 ' , bottom: ' 0 ' , right: ' 0 ' , width: ' 100 % ' , height: ' 100 % ' } }
src="https://www.youtube.com/embed/D6fCvpmV8eo"
title="YouTube video player"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; fullscreen"
allowfullscreen>
< / iframe >
< / div >
< br / >
2022-12-22 09:36:45 +00:00
With ClearML’ s Reports you can write up notes, experiment findings, or really anything you want. You can create reports
in any of your ClearML projects.
In addition to its main document, a report also contains a description field, which will appear in the report's card in
2023-02-07 08:17:50 +00:00
the [Reports Page ](#reports-page ). Reports are searchable based on their description, so adding a description
can make it easier to find the report later.
2022-12-22 09:36:45 +00:00
Reports are editable Markdown documents, supporting:
* Multi-level headings
* Text formatting: Italics, bold, and strikethrough
* Bulleted and numbered lists
* Tables
* Code blocks
* Text and image hyperlinks
2023-03-15 13:11:34 +00:00
* Embedded images uploaded from your computer
2023-05-17 08:38:28 +00:00
* Embedded ClearML task, model, and [app ](applications/apps_overview.md ) content
2022-12-22 09:36:45 +00:00
![Report ](../img/webapp_report.png )
Publishing a report locks it for future editing, so you can preserve its contents. You can also share your reports,
download a PDF copy, or simply copy the MarkDown content and reuse in your editor of choice.
Access ClearML reports through the [Reports Page ](#reports-page ).
## Embedding ClearML Visualizations
2023-05-17 08:38:28 +00:00
You can embed plots and images from your ClearML objects (experiments, models, and apps) into your reports: scalar
graphs and other plots, and debug samples
from an individual object or from an object comparison page. These visualizations are updated live as the
object(s) updates.
2022-12-22 09:36:45 +00:00
To add a graphic resource:
2023-05-17 08:38:28 +00:00
1. Go to the resource you want to embed in your report (a plot or debug sample from an individual object or
object comparison)
2022-12-28 09:09:56 +00:00
2. Hover over the resource and click < img src = "/docs/latest/icons/ico-plotly-embed-code.svg" alt = "Generate embed code" className = "icon size-md space-sm" /> .
![Reports step 2 ](../img/reports_step_2.png )
Click `Embed in ClearML report` . This generates the embed code for accessing the resource, and copies
it to your clipboard.
![Reports step 2a ](../img/reports_step_2a.png )
2022-12-22 09:36:45 +00:00
2022-12-28 09:09:56 +00:00
3. Return to your report page and paste the code snippet
2022-12-22 09:36:45 +00:00
2022-12-28 09:09:56 +00:00
![Reports step 3 ](../img/reports_step_3.png )
2023-03-28 12:06:01 +00:00
2023-05-17 08:38:28 +00:00
Once embedded in the report, you can return to the resource's original location (e.g. comparison page, experiment/model/app page)
by clicking < img src = "/docs/latest/icons/ico-resource-return.svg" alt = "Return to resource" className = "icon size-md" / > .
2023-03-28 12:06:01 +00:00
### Customizing Embed Code
You can customize embed codes to make more elaborate queries for what you want to display in your reports.
A standard embed code is formatted like this:
```
< iframe
2023-07-18 08:08:20 +00:00
src="< web_server > /widgets/?type=sample& objectType=task& objects=< object_id > & xaxis=iter& metrics=< metric_name > & variants=Plot%20as%20an%20image& company=< company / workspace_id > "
2023-03-28 12:06:01 +00:00
width="100%" height="400"
>< / iframe >
```
The `src` parameter is made up of the following components:
* Your web server’ s URL (e.g. `app.clear.ml` )
* `/widget/` - The endpoint that serves the embedded data.
* The query parameters for your visualization (the path and query are separated by a question mark `?` )
The query is formatted like a standard query string: `<parameter>=<parameter_value>` . Multiple parameter-value pairs are
delimited with a `&` : `<parameter_1>=<parameter_value_1>&<parameter_2>=<parameter_value_2>` .
The query string usually includes the following parameters:
2023-05-17 08:38:28 +00:00
* `objectType` - The type of object to fetch. The options are `task` or `model` (`task` also includes ClearML app instances).
* `objects` - Object IDs (i.e. task or model IDs depending on specified ObjectType). Specify multiple IDs like this:
`objects=<id>&objects=<id>&objects=<id>` . Alternatively, you can input a query, and the matching objects' specified
resources will be displayed. See [Dynamic Queries ](#dynamic-queries ) below.
2023-03-28 12:06:01 +00:00
* `type` - The type of resource to fetch. The options are:
* `plot`
* `scalar`
2023-05-17 08:38:28 +00:00
* `single` (single-scalar values table)
2023-03-28 12:06:01 +00:00
* `sample` (debug sample)
* `parcoords` (hyperparameter comparison plots) - for this option, you need to also specify the following parameters:
2023-05-31 09:37:20 +00:00
* `metrics` - Unique metric/variant ID formatted like `metric_id.variant_id` (see note [below ](#event_id ))
2023-03-28 12:06:01 +00:00
* `variants` - Parameters to include in the plot (write in following format `<section_name>.<parameter_1>&<section_name>.<parameter_2>` )
* `value_type` - Specify which metric values to use. The options are:
* `min_value`
* `max_value`
* `value` (last value)
2023-07-18 08:08:20 +00:00
* `xaxis` - Set the x-axis units for plots. The options are:
* `iter` - Iteration (default)
* `timestamp` - Time from start
* `iso_time` - Wall time
2023-03-28 12:06:01 +00:00
* `metrics` - Metric name
* `variants` - Variant’ s name
* `company` - Workspace ID. Applicable to the ClearML hosted service, for embedding content from a different workspace
* `light` - add parameter to switch visualization to light theme
:::tip URL encoding
For strings, make sure to use the appropriate URL encoding. For example, if the metric name is "Metric Name",
write `Metric%20Name`
:::
2023-05-17 08:38:28 +00:00
### Dynamic Queries
You can create more complex queries by specifying object criteria (e.g. tags, statuses, projects, etc.) instead of
specific task IDs, with parameters from the [`tasks.get_all` ](../references/api/tasks.md#post-tasksget_all ) or
[`models.get_all` ](../references/api/models.md#post-modelsget_all ) API calls.
2023-03-28 12:06:01 +00:00
For these parameters, use the following syntax:
* `key=value` for non-array fields
* `key[]=<value1>,<value2>` for array fields.
2023-03-29 07:55:13 +00:00
2023-03-28 12:06:01 +00:00
Delimit the fields with `&` s.
2023-05-17 08:38:28 +00:00
#### Examples:
The following are examples of dynamic queries. All the examples use `objectType=task` , but `objectType=model` can also be
used.
2023-03-28 12:06:01 +00:00
* Request the scalars plot of a specific metric variant for the latest experiment in a project:
```
2023-07-18 08:08:20 +00:00
src="< web_server > /widgets/?objectType=task& xaxis=iter& type=scalar& metrics=< metric_name > & variants=< variant > & project=< project_id > & page_size=1& page=0& order_by[]=-last_update
2023-03-28 12:06:01 +00:00
```
Notice that the `project` parameter is specified. In order to get the most recent single experiment,
`page_size=1&page=0&order_by[]=-last_update` is added. `page_size` specifies how many results are returned in each
page, and `page` specifies which page to return (in this case the first page)--this way you can specify how many
experiments you want in your graph. `order_by[]=-last_update` orders the results by update time in descending order
(most recent first).
* Request the scalars plot of a specific metric variant for the experiments with a specific tag:
```
2023-07-18 08:08:20 +00:00
src="< web_server > /widgets/?objectType=task& xaxis=iter& type=scalar& metrics=< metric_name > & variants=< variant > & tags[]=__$or,< tag >
2023-03-28 12:06:01 +00:00
```
A list of tags that the experiment should contain is specified in the `tags` argument. You can also specify tags that
exclude experiments. See tag filter syntax examples [here ](../clearml_sdk/task_sdk.md#tag-filters ).
2023-05-31 09:37:20 +00:00
* Request the `training/accuracy` scalar plot of the 5 experiments with the best accuracy scores (see Metric/Variant IDs note [below ](#event_id )):
2023-03-28 12:06:01 +00:00
```
2023-07-18 08:08:20 +00:00
src="< web_server > /widgets/?objectType=task& xaxis=iter& type=scalar& metrics=training& variants=accuracy& project=4043a1657f374e9298649c6ba72ad233& page_size=5& page=0& order_by[]=-last_metrics.< metric_id > .< variant_id > .value"
2023-03-28 12:06:01 +00:00
```
< a id = "event_id" > < / a >
2023-05-31 09:37:20 +00:00
:::tip Metric/Variant IDs
Metric names need to be MD5 encoded for parallel coordinate plots and for ordering query results by metric
performance. You can encode the strings in Python with `hashlib.md5(str("<metric_string>").encode("utf-8")).hexdigest()` ,
and use the returned MD5 hash in your query.
2023-03-28 12:06:01 +00:00
:::
2022-12-28 09:09:56 +00:00
2022-12-22 09:36:45 +00:00
## Reports Page
2023-03-15 13:11:34 +00:00
Use the Reports Page to navigate between and manage reports.
2022-12-22 09:36:45 +00:00
2023-03-15 13:11:34 +00:00
You can view the reports page in Project view < img src = "/docs/latest/icons/ico-project-view.svg" alt = "Project view" className = "icon size-md" / >
or in List view < img src = "/docs/latest/icons/ico-flat-view.svg" alt = "List view" className = "icon size-md" / > . In List
view, all reports are shown side-by-side. In Project view, reports are organized according to their projects, and
top-level projects are displayed. Click on a project card to view the project's reports.
2022-12-22 09:36:45 +00:00
![Report page ](../img/webapp_report_page.png )
2023-03-15 13:11:34 +00:00
## Project Cards
2023-05-17 08:38:28 +00:00
In Project view, project cards display a project's summarized report information:
2023-03-15 13:11:34 +00:00
2023-03-19 10:34:17 +00:00
< div class = "max-w-50" >
2023-03-15 13:11:34 +00:00
![Report project card ](../img/webapp_report_project_card.png )
2023-03-19 10:34:17 +00:00
< / div >
2023-03-15 13:11:34 +00:00
Click on a project card to view its reports.
2022-12-22 09:36:45 +00:00
### Report Cards
2023-03-15 13:11:34 +00:00
In List view, the report cards display summarized report information:
2022-12-22 09:36:45 +00:00
< div class = "max-w-50" >
![report card ](../img/webapp_report_card.png )
< / div >
* Report name
* Report's project
* Creating user
* Last update time
* Status
* Description
* Tags
#### Report Actions
Click < img src = "/docs/latest/icons/ico-bars-menu.svg" alt = "Menu" className = "icon size-md space-sm" / > on the top right
of a report card to open its context menu and access report actions:
< div class = "max-w-50" >
![Report card context menu ](../img/webapp_report_card_context_menu.png )
< / div >
2023-05-17 08:38:28 +00:00
* **Rename** - Change the report's name
2022-12-22 09:36:45 +00:00
* **Share** - Copy URL to share report
2023-02-07 08:17:50 +00:00
* **Add Tag** - Add labels to the report to help easily classify groups of reports.
2022-12-22 09:36:45 +00:00
* **Move to** - Move the report into another project. If the target project does not exist, it is created on-the-fly.
* **Archive** - Move report from active reports page to archive
* **Delete** - Delete the report. To delete a report, it must first be archived.
### Create New Reports
To create a new project, click the ** + NEW REPORT** button in the top right of the page,
2022-12-28 09:11:05 +00:00
which will open a **New Report** modal.
![New project modal ](../img/webapp_report_new_report.png )
## MarkDown Formatting Quick Guide
The following is a quick reference for the MarkDown syntax that can be used in ClearML Reports.
### Heading Levels
To create headings, add `#` in front of the phrases that you want to turn into
headings. The number of `#` signs correspond to the heading level (i.e. `#` for level-1 heading, `##` for level-2, etc.):
| MarkDown | Rendered Output |
|---|---|
| < code > # H1< br / > ## H2< br / > ### H3< br / > #### H4< br / > ##### H5< br / > ###### H6< / code > |![Report headings](../img/reports_headings.png)|
### Text Emphasis
The following table presents the text format options:
|Format Option| MarkDown | Rendered Output |
|---|---|---|
|Bold | \*\*This is bold text\*\* and \_\_so is this\_\_ |**This is bold text** and __so is this__ |
|Italics | \*This is italic text\* and \_so is this\_|*This is italic text* and _so is this_ |
|Strikethrough |\~\~Strikethrough\~\~ |~~Strikethrough~~|
|Inline Code | \`this is code\`| `this is code` |
### Blockquotes
To create a blockquote, add a `>` before each line of the quote. Nest blockquotes by adding additional
`>` signs before each line of the nested blockquote.
| MarkDown | Rendered Output |
|---|---|
| < code > \> Blockquote< br /> \>\> Nested quote 1< br /> \>\>\> Nested quote 2</ code > |![Report Blockquotes](../img/reports_blockquotes.png)|
### Lists
#### Ordered List
Create an ordered list by numbering the list items with numbers followed by periods. The list items do not have to be numbered
correctly, but the list will be rendered numerically starting with `1.` .
| MarkDown | Rendered Output |
|---|---|
| < code > 1. Item 1< br / > 2. Item 2< br / > 1. Item 3< br / > 1. Item 4< / code > |![Report ordered list](../img/reports_ordered_list.png)|
#### Unordered List
Create an unordered list by starting each line with the `+` , `-` , or `*` signs. Different
signs can be used to create the bullets in the same list, but they are all rendered uniformly.
You can also use checkmarks (`* [x]`), following any of the bullet signs.
To nest lists, indent nested items 2 spaces more than their parent list item.
| MarkDown | Rendered Output |
|---|---|
| < code > + Item 1< br /> + Item 2< br /> - Sub-item a:< br /> \* Sub-sub-item x< br /> + Sub-sub-item y< br /> - Sub-sub-item z< br /> \* [x] A checkmark </ code > |![Report unordered list](../img/reports_unordered_list.png)|
### Tables
MarkDown code for a table looks like this:
```markdown
| | Align Right | Align Left | Align Center |
| -------- | -----------:|:---------- |:------------:|
| 1 | 1 | 1 | 1 |
| 11 | 11 | 11 | 11 |
```
The rendered output should look like this:
![Reports table ](../img/reports_table.png )
Add the table column names in the first row; each name is preceded and followed by a pipe (`|`).
In the second row, add sets of at least three hyphens (`---`) for each column, and add a pipe before and after each set
of hyphens. In the second row, you can specify each table column's contents alignment. To align the contents to the
left, place a colon (`:`) to the left of the hyphens. To align right, place a colon to the right of the hyphens. To
center align, place colons on both sides of the hyphens.
### Code
To render inline code, surround the code with single backticks (< code > \`</ code > ). For example \`code\` will be rendered `code` .
To create block code, use one of the following options:
* Indent the code
```
from clearml import Task
t = Task.init(project_name='My project', task_name='Base')
```
* Surround code with "fences"--three backticks (< code > ```</ code > ):
```
from clearml import Task
t = Task.init(project_name='My project', task_name='Base')
```
Both of these options will be rendered as:
```
from clearml import Task
t = Task.init(project_name='My project', task_name='Base')
```
#### Syntax Highlighting
To display syntax highlighting, specify the coding language after the first fence (e.g. < code > \```python</ code > , < code > \```json</ code > , < code > \```js</ code > , etc.):
```python
from clearml import Task
t = Task.init(project_name='My project', task_name='Base')
```
The rendered output should look like this:
```py
from clearml import Task
t = Task.init(project_name='My project', task_name='Base')
```
### Links
To create a link, enclose link text inside brackets, followed by the URL link enclosed in parentheses:
```
[link text ](https://clear.ml )
```
The rendered output should look like this:
[link text ](https://clear.ml )
To add a title to the link, which you can see in a tooltip when hovering over the link, add the title after the URL
link in the parentheses:
```
[link with title ](https://clear.ml "ClearML Documentation" )
```
The rendered output should look like this: [link with title ](https://clear.ml "ClearML Documentation" ). Hover over the
link to see the link's title.
### Collapsible Sections
The MarkDown code for a collapsible panel looks like this:
| MarkDown | Rendered Output |
|---|---|
| < code >< details \>< br /> & nbsp< summary \>Section title </ summary \>< br /> Collapsible Section Contents< br /> < /details\></ code > |< details >< summary > Section title</ summary > Collapsible Section Contents</ details > |
The collapsible panel is surrounded by `<details>` tags. Within the `<details>` tag, add the section's title between
the `<summary>` tags. This title can be seen when the panel is collapsed. After the `</summary>` tag, add the panel
contents.
### Horizontal Rules
Create horizontal lines using three hyphens (`---`), underscores (`___`), or asterisks (`***`):
| MarkDown | Rendered Output |
|---|---|
| < code > ---< br / > < br / > ___< br / > < br / > ***< / code > |![Reports horizontal rules](../img/reports_horizontal_rules.png)|
### Images
To add an image, add an exclamation point, followed by the alt text enclosed by brackets, followed by the link to the
image enclosed in parentheses:
```
![Logo ](https://raw.githubusercontent.com/allegroai/clearml/master/docs/clearml-logo.svg )
```
The rendered output should look like this:
![Logo ](https://raw.githubusercontent.com/allegroai/clearml/master/docs/clearml-logo.svg )
To add a title to the image, which you can see in a tooltip when hovering over the image, add the title after the image's
link:
```
![With title ](https://raw.githubusercontent.com/allegroai/clearml/master/docs/clearml-logo.svg "ClearML logo" )
```
The rendered output should look like this:
![Logo with title ](https://raw.githubusercontent.com/allegroai/clearml/master/docs/clearml-logo.svg "ClearML logo" )
Hover over the image to see its title.
2022-12-22 09:36:45 +00:00