tf.keras.tree.assert_same_structure

Asserts that two structures are nested in the same way.

This function verifies that the nested structures match. The leafs can be of any type. At each level, the structures must be of the same type and have the same number of elements. Instances of dict, OrderedDict and defaultdict are all considered the same as long as they have the same set of keys. However, list, tuple, namedtuple and deque are not the same structures. Two namedtuples with identical fields and even identical names are not the same structures.

Examples:

keras.tree.assert_same_structure([(0, 1)], [(2, 3)])
Foo = collections.namedtuple('Foo', ['a', 'b'])
AlsoFoo = collections.namedtuple('Foo', ['a', 'b'])
keras.tree.assert_same_structure(Foo(0, 1), Foo(2, 3))
keras.tree.assert_same_structure(Foo(0, 1), AlsoFoo(2, 3))
Traceback (most recent call last):

ValueError: The two structures don't have the same nested structure.

a an arbitrarily nested structure.
b an arbitrarily nested structure.
check_types Deprecated. The behavior of this flag was inconsistent, it no longer has any effect. For a looser check, use assert_same_paths instead, which considers list, tuple, namedtuple and deque as matching structures.

ValueError If the two structures a and b don't match.