Skip to content

Diagonal CMA error with high number of parameters and multiple workers #1690

@N1K1T4

Description

@N1K1T4

The error is the same as in multiple issues (#1508, #1593, #1609):
RuntimeError: Mean shift samples are expected but missing.

I stumbled upon it with NGOpt -> NGOpt16 -> CMA -> CMAbounded.

I did not find how it was fixed in the other issues so I am not sure if it is caused by nevergrad use of cma or cma itself.

Reproduction steps

With this environement:

  • Python 3.11.2
  • cma==4.0.0
  • nevergrad==1.0.8

Run the following script:

#!/usr/bin/env python3

import nevergrad as ng
import random


def _loss(*args, **kwargs):
    return random.random()


def main():
    optimizer = ng.optimizers.CMAbounded(
        parametrization=300,
        budget=1000,
        num_workers=2,
    )
    optimizer.minimize(_loss)


if __name__ == "__main__":
    main()

Notes

  • It seems to work fine with a dimension of 299.
  • Same error with LargeDiagCMA and CMApara while OldCMA, LargeCMA, TinyCMA, CMAsmall, CMAstd and CMAtuning work fine. The common denomminator is diagonal=True.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions