<br />

|---|
| [![](https://www.tensorflow.org/images/GitHub-Mark-32px.png) View source on GitHub](https://github.com/tensorflow/models/blob/v2.20.0/official/core/config_definitions.py#L288-L304) |

Config passed to task.

Inherits From: [`Config`](https://www.tensorflow.org/api_docs/python/tfm/hyperparams/Config), [`ParamsDict`](https://www.tensorflow.org/api_docs/python/tfm/hyperparams/ParamsDict)

    tfm.core.config_definitions.TaskConfig(
        default_params: dataclasses.InitVar[Optional[Mapping[str, Any]]] = None,
        restrictions: dataclasses.InitVar[Optional[List[str]]] = None,
        init_checkpoint: str = '',
        model: Optional[https://www.tensorflow.org/api_docs/python/tfm/hyperparams/Config] = None,
        train_data: https://www.tensorflow.org/api_docs/python/tfm/core/config_definitions/DataConfig = dataclasses.field(default_factory=DataConfig),
        validation_data: https://www.tensorflow.org/api_docs/python/tfm/core/config_definitions/DataConfig = dataclasses.field(default_factory=DataConfig),
        name: Optional[str] = None,
        differential_privacy_config: Optional[https://www.tensorflow.org/api_docs/python/tfm/core/base_task/DifferentialPrivacyConfig] = None,
        allow_image_summary: bool = False
    )

<br />

<br />

<br />

| ## Args ||
|---|---|
| `default_params` | a Python dict or another ParamsDict object including the default parameters to initialize. |
| `restrictions` | a list of strings, which define a list of restrictions to ensure the consistency of different parameters internally. Each restriction string is defined as a binary relation with a set of operators, including {'==', '!=', '\<', '\<=', '\>', '\>='}. |

<br />

<br />

<br />

<br />

| ## Attributes ||
|---|---|
| `BUILDER` | <br /> <br /> |
| `default_params` | Dataclass field |
| `restrictions` | Dataclass field |
| `init_checkpoint` | Dataclass field |
| `model` | Dataclass field |
| `train_data` | Dataclass field |
| `validation_data` | Dataclass field |
| `name` | Dataclass field |
| `differential_privacy_config` | Dataclass field |
| `allow_image_summary` | Dataclass field |

<br />

## Methods

### `as_dict`

[View source](https://github.com/tensorflow/models/blob/v2.20.0/official/modeling/hyperparams/base_config.py#L315-L324)

    as_dict()

Returns a dict representation of params_dict.ParamsDict.

For the nested params_dict.ParamsDict, a nested dict will be returned.

### `from_args`

[View source](https://github.com/tensorflow/models/blob/v2.20.0/official/modeling/hyperparams/base_config.py#L349-L358)

    @classmethod
    from_args(
        *args, **kwargs
    )

Builds a config from the given list of arguments.

### `from_json`

[View source](https://github.com/tensorflow/models/blob/v2.20.0/official/modeling/hyperparams/base_config.py#L344-L347)

    @classmethod
    from_json(
        file_path: str
    )

Wrapper for `from_yaml`.

### `from_yaml`

[View source](https://github.com/tensorflow/models/blob/v2.20.0/official/modeling/hyperparams/base_config.py#L335-L342)

    @classmethod
    from_yaml(
        file_path: str
    )

### `get`

[View source](https://github.com/tensorflow/models/blob/v2.20.0/official/modeling/hyperparams/params_dict.py#L142-L144)

    get(
        key, value=None
    )

Accesses through built-in dictionary get method.

### `lock`

[View source](https://github.com/tensorflow/models/blob/v2.20.0/official/modeling/hyperparams/params_dict.py#L204-L206)

    lock()

Makes the ParamsDict immutable.

### `override`

[View source](https://github.com/tensorflow/models/blob/v2.20.0/official/modeling/hyperparams/params_dict.py#L165-L181)

    override(
        override_params, is_strict=True
    )

Override the ParamsDict with a set of given params.

<br />

<br />

<br />

| Args ||
|---|---|
| `override_params` | a dict or a ParamsDict specifying the parameters to be overridden. |
| `is_strict` | a boolean specifying whether override is strict or not. If True, keys in `override_params` must be present in the ParamsDict. If False, keys in `override_params` can be different from what is currently defined in the ParamsDict. In this case, the ParamsDict will be extended to include the new keys. |

<br />

### `replace`

[View source](https://github.com/tensorflow/models/blob/v2.20.0/official/modeling/hyperparams/base_config.py#L326-L333)

    replace(
        **kwargs
    )

Overrides/returns a unlocked copy with the current config unchanged.

### `validate`

[View source](https://github.com/tensorflow/models/blob/v2.20.0/official/modeling/hyperparams/params_dict.py#L222-L329)

    validate()

Validate the parameters consistency based on the restrictions.

This method validates the internal consistency using the pre-defined list of
restrictions. A restriction is defined as a string which specifies a binary
operation. The supported binary operations are {'==', '!=', '\<', '\<=', '\>',
'\>='}. Note that the meaning of these operators are consistent with the
underlying Python immplementation. Users should make sure the define
restrictions on their type make sense.

For example, for a ParamsDict like the following

    a:
      a1: 1
      a2: 2
    b:
      bb:
        bb1: 10
        bb2: 20
      ccc:
        a1: 1
        a3: 3

one can define two restrictions like this
\['a.a1 == b.ccc.a1', 'a.a2 \<= b.bb.bb2'\]

<br />

<br />

| What it enforces are ||
|---|---|
| <br /> - a.a1 = 1 == b.ccc.a1 = 1 - a.a2 = 2 \<= b.bb.bb2 = 20 ||

<br />

<br />

<br />

<br />

| Raises ||
|---|---|
| `KeyError` | if any of the following happens (1) any of parameters in any of restrictions is not defined in ParamsDict, (2) any inconsistency violating the restriction is found. |
| `ValueError` | if the restriction defined in the string is not supported. |

<br />

### `__contains__`

[View source](https://github.com/tensorflow/models/blob/v2.20.0/official/modeling/hyperparams/params_dict.py#L138-L140)

    __contains__(
        key
    )

Implements the membership test operator.

### `__eq__`

    __eq__(
        other
    )

Return self==value.

<br />

<br />

<br />

| ## Class Variables ||
|---|---|
| IMMUTABLE_TYPES | `(<class 'str'>, <class 'int'>, <class 'float'>, <class 'bool'>, <class 'NoneType'>)` |
| RESERVED_ATTR | `['_locked', '_restrictions']` |
| SEQUENCE_TYPES | `(<class 'list'>, <class 'tuple'>)` |
| allow_image_summary | `False` |
| default_params | `None` |
| differential_privacy_config | `None` |
| init_checkpoint | `''` |
| model | `None` |
| name | `None` |
| restrictions | `None` |

<br />