# \[raytune\] Use Repeater with BasicVariantGenerator

**URL:** <https://discuss.ray.io/t/raytune-use-repeater-with-basicvariantgenerator/9042>\
**Category:** Ray Tune\
**Created:** [January 19, 2023, 10:38pm UTC](https://discuss.ray.io/t/raytune-use-repeater-with-basicvariantgenerator/9042 "2023-01-19T22:38:37Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![raytune\_kuberay\_user](https://avatars.discourse-cdn.com/v4/letter/r/a87d85/32.png) [@raytune\_kuberay\_user](https://discuss.ray.io/u/raytune_kuberay_user)\
**Post date:** [January 19, 2023, 10:38pm UTC](https://discuss.ray.io/t/raytune-use-repeater-with-basicvariantgenerator/9042/1 "2023-01-19T22:38:37Z")

</div>

We are using ray 2.1 And are seeing errors with Repeater. Code to reproduce is below:

```auto
>>> from ray.tune.search.basic_variant import BasicVariantGenerator
>>> from ray.tune.search import Repeater
>>> algo=BasicVariantGenerator()
>>> algorithm = Repeater(algo, repeat=1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/mtian/IdeaProjects/tf2-trainer_trunk/build/tf2-trainer-component-training/environments/development-venv/lib/python3.7/site-packages/ray/tune/search/repeater.py", line 127, in __init__
    metric=self.searcher.metric, mode=self.searcher.mode
AttributeError: 'BasicVariantGenerator' object has no attribute 'mode'

```

I think the root cause it that BasicVariantGenerator is a SearchAlgorithm. But repeater needs a Searcher. Is there a Searcher class for the default random search algorithm (BasicVariantGenerator)

---

<div class="post-metadata">

**Author:** ![Yard1](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ray.io/yard1/32/508_2.png) [@Yard1](https://discuss.ray.io/u/Yard1)\
**Post date:** [January 20, 2023, 12:02am UTC](https://discuss.ray.io/t/raytune-use-repeater-with-basicvariantgenerator/9042/2 "2023-01-20T00:02:44Z")

</div>

This doesn’t seem to be supported right now. Can you open an issue on github?

As a workaround, you can use eg. OptunaSearcher or HyperoptSearcher with random samplers to achieve a similar outcome to the BasicVariantGenerator (though `tune.grid_search` is not supported with those).

---

<div class="post-metadata">

**Author:** ![kai](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ray.io/kai/32/3380_2.png) [@kai](https://discuss.ray.io/u/kai)\
**Post date:** [January 25, 2023, 10:51pm UTC](https://discuss.ray.io/t/raytune-use-repeater-with-basicvariantgenerator/9042/3 "2023-01-25T22:51:00Z")

</div>

Another workaround is to pass `constant_grid_search=True` to the `BasicVariantGenerator` and a `"repeat": tune.grid_search(range(num_repeats))` parameter to the config/param space. This will sample the random values first and then iterate through all grid search parameters, keeping the random values constant.

If you have more grid search parameters, this may not be exactly what you’re looking for - let us know!

---

<div class="post-metadata">

**Author:** ![AdamDivekar](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ray.io/adamdivekar/32/2556_2.png) [@AdamDivekar](https://discuss.ray.io/u/AdamDivekar)\
**Post date:** [March 24, 2023, 4:19pm UTC](https://discuss.ray.io/t/raytune-use-repeater-with-basicvariantgenerator/9042/4 "2023-03-24T16:19:16Z")

</div>

Is there a Github issue for this? If not, I can create one. I also have this problem

---

<div class="post-metadata">

**Author:** ![raytune\_kuberay\_user](https://avatars.discourse-cdn.com/v4/letter/r/a87d85/32.png) [@raytune\_kuberay\_user](https://discuss.ray.io/u/raytune_kuberay_user)\
**Post date:** [March 24, 2023, 4:40pm UTC](https://discuss.ray.io/t/raytune-use-repeater-with-basicvariantgenerator/9042/5 "2023-03-24T16:40:25Z")

</div>

no. there is no issue created for it.

---

<div class="post-metadata">

**Author:** ![AdamDivekar](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.ray.io/adamdivekar/32/2556_2.png) [@AdamDivekar](https://discuss.ray.io/u/AdamDivekar)\
**Post date:** [March 24, 2023, 5:05pm UTC](https://discuss.ray.io/t/raytune-use-repeater-with-basicvariantgenerator/9042/6 "2023-03-24T17:05:41Z")

</div>

There is now an issue for this: [[Tune] Allow use of tune.search.Repeater with BasicVariantGenerator to allow K-fold CrossValidation · Issue #33677 · ray-project/ray · GitHub](https://github.com/ray-project/ray/issues/33677)
