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.
- flax.core.frozen_dict.freeze(xs)[source]#
Freeze a nested dict.
Makes a nested
dict
immutable by transforming it intoFrozenDict
.- 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 returnrepr(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.