# Retrieve and update your assets

## Working with data assets

### List all your data assets

If you want to retrieve all the data assets you saved for one experiment, here is how :

```python
from picsellia.client import Client

api_token = '4d388e237d10b8a19a93517ffbe7ea32ee7f4787'
project_token = '9c68b4ae-691d-4c3a-9972-8fe49ffb2799'

experiment = Client.Experiment(
    api_token=api_token,
    project_token=project_token
    )
experiment.checkout('my_new_experiment')
experiment.list_data()
```

```python
 [
  {
   'id': 72,
    'date_created': '2021-02-09T12:32:18.293746Z',
    'last_update': '2021-02-09T12:32:18.293556Z',
    'name': 'parameters',
    'data': {'steps': 200000,
     'nb_gpu': 1,
     'batch_size': 8,
     'learning_rate': 0.005,
     'annotation_type': 'classification'
     },
    'type': 'table'
   }
  ]
```

### Delete all your data assets

If you think that your experiments needs a bit of cleansing, you can delete all the data assets you saved at once like this :

```python
experiment.delete_all_data()
```

### Retrieve an asset

If you want to retrieve a particular data asset, let's say the parameters of your last training, here is how you can do it :

{% hint style="info" %}
You will only return what is stored in the data field of the data asset, not all the information about the asset.
{% endhint %}

```python
experiment.get_data('parameters')
```

```python
{'steps': 200000,
 'nb_gpu': 1,
 'batch_size': 8,
 'learning_rate': 0.005,
 'annotation_type': 'classification'}
```

### Updating an asset

Now let's say that you want to change the value list of parameters for this training, here is how :

```python
parameters = {
 'steps': 5e6,
 'nb_gpu': 8,
 'batch_size': 64,
 'learning_rate': 0.0055,
 'annotation_type': 'detection'
}
experiment.update_data('parameters', data=parameters)
```

The method return the updated object

```python
{
 'id': 72,
 'date_created': '2021-02-09T12:32:18.293746Z',
 'last_update': '2021-02-09T12:32:18.293556Z',
 'name': 'parameters',
 'data': {'steps': 5000000.0,
  'nb_gpu': 8,
  'batch_size': 64,
  'learning_rate': 0.0055,
  'annotation_type': 'detection'},
 'type': 'table'
 }
```

### Delete an asset

If you want to completely remove a data asset from all your visualizations, here is how :

```python
experiment.delete_data('parameters')
```

## Working with file assets

### List all your file assets

If you want to retrieve all the file assets you saved for one experiment, here is how :

```python
from picsellia.client import Client

api_token = '4d388e237d10b8a19a93517ffbe7ea32ee7f4787'
project_token = '9c68b4ae-691d-4c3a-9972-8fe49ffb2799'

experiment = Client.Experiment(
    api_token=api_token,
    project_token=project_token
    )
experiment.checkout('my_new_experiment')
experiment.list_files()
```

The method return the list of files

```python
[{'id': 22,
  'date_created': '2021-02-09T12:32:18.022694Z',
  'last_update': '2021-02-09T12:32:18.022465Z',
  'large': False,
  'name': 'config',
  'object_name': '9a141ede-03dc-4e6c-a695-38661d9a97c3/pipeline.config'},
 {'id': 23,
  'date_created': '2021-02-09T12:32:18.068900Z',
  'last_update': '2021-02-09T12:32:18.068723Z',
  'large': True,
  'name': 'model-latest',
  'object_name': '9a141ede-03dc-4e6c-a695-38661d9a97c3/0/saved_model.zip'},
 {'id': 24,
  'date_created': '2021-02-09T12:32:18.112582Z',
  'last_update': '2021-02-09T12:32:18.112410Z',
  'large': True,
  'name': 'checkpoint-data-latest',
  'object_name': '9a141ede-03dc-4e6c-a695-38661d9a97c3/ckpt-0.data-00000-of-00001'},
 {'id': 25,
  'date_created': '2021-02-09T12:32:18.156945Z',
  'last_update': '2021-02-09T12:32:18.156767Z',
  'large': False,
  'name': 'checkpoint-index-latest',
  'object_name': '9a141ede-03dc-4e6c-a695-38661d9a97c3/ckpt-0.index'}]
```

### Delete all your file assets

f you think that your experiments needs a bit of cleansing, you can delete all the file assets you saved at once like this :

```python
experiment.delete_all_files()
```

### Retrieve and download a file asset

If you only need to retrieve informations about a file you can use the following method

```python
experiment.get_file('config')
```

```python
{'id': 22,
 'date_created': '2021-02-09T12:32:18.022694Z',
 'last_update': '2021-02-09T12:32:18.022465Z',
 'large': False,
 'name': 'config',
 'object_name': '9a141ede-03dc-4e6c-a695-38661d9a97c3/pipeline.config'}
```

If you need to download the file you can use the following method

```python
experiment.download('config')
```

{% hint style="warning" %}
If the file size exceeds 5Mb or if you get errors while using `download`, you might need to set the `large` parameter to `True`
{% endhint %}

```python
experiment.download('config', large=True)
```

Alternatively, you can download the file to a specified folder, just set the `path` parameter to the path of the folder (must be an existing folder)

```python
experiment.download('config', path='training')
```

### Update a file asset

The update function is there if you need to perform update on file information such as its name.

```python
experiment.update_file('config', name='new-config')
```

{% hint style="warning" %}
If you call the store method again, it will automatically erase the old file and replace if with the new one
{% endhint %}

### Delete a file asset

If you want to remove a file asset from one of your experiment, here is how to do it.

```python
from picsellia.client import Client

api_token = '4d388e237d10b8a19a93517ffbe7ea32ee7f4787'
project_token = '9c68b4ae-691d-4c3a-9972-8fe49ffb2799'

experiment = Client.Experiment(
    api_token=api_token,
    project_token=project_token
    name='my_new_experiment'
    )

experiment.delete_file('model-latest')
```

{% hint style="danger" %}
**Be aware that this will also permanently delete  the file from our storage.**&#x20;
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://picsellia.gitbook.io/picsellia/experiment-tracking/retrieve-and-update-your-assets.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
