def from_config()

in classy_vision/optim/adam.py [0:0]


    def from_config(cls, config: Dict[str, Any]) -> "Adam":
        """Instantiates a Adam from a configuration.

        Args:
            config: A configuration for a Adam.
                See :func:`__init__` for parameters expected in the config.

        Returns:
            A Adam instance.
        """
        # Default params
        config.setdefault("lr", 0.1)
        config.setdefault("betas", [0.9, 0.999])
        config.setdefault("eps", 1e-8)
        config.setdefault("weight_decay", 0.0)
        config.setdefault("amsgrad", False)

        # Check if betas is a list and convert it to a tuple
        # since a JSON config can only have lists
        if type(config["betas"]) == list:
            config["betas"] = tuple(config["betas"])

        assert (
            type(config["betas"]) == tuple
            and len(config["betas"]) == 2
            and type(config["betas"][0]) == float
            and type(config["betas"][1]) == float
            and config["betas"][0] >= 0.0
            and config["betas"][0] < 1.0
            and config["betas"][1] >= 0.0
            and config["betas"][1] < 1.0
        ), "Config must contain a tuple 'betas' in [0, 1) for Adam optimizer"

        return cls(
            lr=config["lr"],
            betas=config["betas"],
            eps=config["eps"],
            weight_decay=config["weight_decay"],
            amsgrad=config["amsgrad"],
        )