ContinualAI / ContinualAI/avalanche

Function benchmark_from_datasets has error with parameters and kwargs

Open
#1,628 0 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Python
Stars
2.1k
Forks
321
PR merge metrics
No merged PRs in 30d

Description

in the source code for the function as shown below:
```
def benchmark_from_datasets(**dataset_streams: Sequence[TCLDataset]) -> CLScenario:
"""Creates a benchmark given a list of datasets for each stream.

Each dataset will be considered as a separate experience.
Contents of the datasets must already be set, including task labels.
Transformations will be applied if defined.

Avalanche benchmarks usually provide at least a train and test stream,
but this generator is fully generic.

To use this generator, you must convert your data into an Avalanche Dataset.

:param dataset_streams: A dictionary with stream-name as key and
list-of-datasets as values, where stream-name is the name of the stream,
while list-of-datasets is a list of Avalanche datasets, where
list-of-datasets[i] contains the data for experience i.
"""
exps_streams = []
for stream_name, data_s in dataset_streams.items():
for dd in data_s:
if not isinstance(dd, AvalancheDataset):
raise ValueError("datasets must be AvalancheDatasets")
des = [
DatasetExperience(dataset=dd, current_experience=eid)
for eid, dd in enumerate(data_s)
]
s = EagerCLStream(stream_name, des)
exps_streams.append(s)
return CLScenario(exps_streams)
```
the parameter dataset_streams is given as a kwarg and it gives error as it doesn't accept the dict rpovided by the user instead uses this dataset_streams as the inbuilt dict, thus always raise the Value error as the variable dd in above code is always a string. I removed the ** and now it works fine for me.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.