flax.core.frozen_dict package#

class flax.core.frozen_dict.FrozenDict(*args, __unsafe_skip_copy__=False, **kwargs)[source]#

An immutable variant of the Python dict.

copy(add_or_replace=mappingproxy({}))[source]#

Create a new FrozenDict with additional or replaced entries.

pop(key)[source]#

Create a new FrozenDict where one entry is removed.

Example:

>>> from flax.core import FrozenDict
>>> variables = FrozenDict({'params': {...}, 'batch_stats': {...}})
>>> new_variables, params = variables.pop('params')
Parameters

key – the key to remove from the dict

Returns

A pair with the new FrozenDict and the removed value.

pretty_repr(num_spaces=4)[source]#

Returns an indented representation of the nested dictionary.

unfreeze()[source]#

Unfreeze this FrozenDict.

Returns

An unfrozen version of this FrozenDict instance.

flax.core.frozen_dict.freeze(xs)[source]#

Freeze a nested dict.

Makes a nested dict immutable by transforming it into FrozenDict.

Parameters

xs – Dictionary to freeze (a regualr Python dict).

Returns

The frozen dictionary.

flax.core.frozen_dict.unfreeze(x)[source]#

Unfreeze a FrozenDict.

Makes a mutable copy of a FrozenDict mutable by transforming it into (nested) dict.

Parameters

x – Frozen dictionary to unfreeze.

Returns

The unfrozen dictionary (a regular Python dict).

flax.core.frozen_dict.copy(x, add_or_replace=FrozenDict({}))[source]#

Create a new dict with additional and/or replaced entries. This is a utility function that can act on either a FrozenDict or regular dict and mimics the behavior of FrozenDict.copy.

Example:

>>> from flax.core import FrozenDict, copy
>>> variables = FrozenDict({'params': {...}, 'batch_stats': {...}})
>>> new_variables = copy(variables, {'additional_entries': 1})
Parameters
  • x – the dictionary to be copied and updated

  • add_or_replace – dictionary of key-value pairs to add or replace in the dict x

Returns

A new dict with the additional and/or replaced entries.

flax.core.frozen_dict.pop(x, key)[source]#

Create a new dict where one entry is removed. This is a utility function that can act on either a FrozenDict or regular dict and mimics the behavior of FrozenDict.pop.

Example:

>>> from flax.core import FrozenDict, pop
>>> variables = FrozenDict({'params': {...}, 'batch_stats': {...}})
>>> new_variables, params = pop(variables, 'params')
Parameters
  • x – the dictionary to remove the entry from

  • key – the key to remove from the dict

Returns

A pair with the new dict and the removed value.

flax.core.frozen_dict.pretty_repr(x, num_spaces=4)[source]#

Returns an indented representation of the nested dictionary. This is a utility function that can act on either a FrozenDict or regular dict and mimics the behavior of FrozenDict.pretty_repr. If x is any other dtype, this function will return repr(x).

Parameters
  • x – the dictionary to be represented

  • num_spaces – the number of space characters in each indentation level

Returns

An indented string representation of the nested dictionary.