РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
793 of 824 menu

Функция nest.assert_same_structure

Функция nest.assert_same_structure проверяет, что две переданные вложенные структуры имеют одинаковое строение. Первым параметром передается первая структура, вторым - вторая структура. Третьим необязательным параметром можно передать флаг check_types, который включает проверку типов элементов. Если структуры различаются, функция возбуждает исключение ValueError. Если структуры совпадают, функция ничего не возвращает.

Синтаксис

tf.nest.assert_same_structure(nest1, nest2, [check_types])

Пример

Давайте проверим, что две одинаковые структуры из списка и словаря совпадают:

import tensorflow as tf nest1 = [tf.constant([1, 2, 3]), {'a': tf.constant([4, 5, 6])}] nest2 = [tf.constant([[1, 2, 3]]), {'a': tf.constant([[4, 5, 6]])}] tf.nest.assert_same_structure(nest1, nest2) print("structures are the same")

Результат выполнения кода:

"structures are the same"

Пример

Давайте попробуем сравнить структуры разного строения и увидим возбужденное исключение:

import tensorflow as tf nest1 = [tf.constant([1, 2, 3]), tf.constant([4, 5, 6])] nest2 = (tf.constant([1, 2, 3]), tf.constant([4, 5, 6])) try: tf.nest.assert_same_structure(nest1, nest2) print("structures are the same") except ValueError as e: print("ValueError:", e)

Результат выполнения кода:

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

Пример

Давайте передадим третий параметр check_types=True, чтобы дополнительно проверить типы вложенных элементов:

import tensorflow as tf nest1 = {'a': tf.constant([1, 2, 3]), 'b': [tf.constant([4, 5, 6])]} nest2 = {'a': tf.constant([[1, 2, 3]]), 'b': [tf.constant([[4, 5, 6]])]} tf.nest.assert_same_structure(nest1, nest2, check_types=True) print("structures and types are the same")

Результат выполнения кода:

"structures and types are the same"

Смотрите также

  • функцию nest.map_structure,
    которая применяет функцию к каждому элементу структуры
  • функцию nest.flatten,
    которая разворачивает вложенную структуру в плоский список
  • функцию nest.pack_sequence_as,
    которая упаковывает плоский список обратно в структуру
  • функцию nest.is_nested,
    которая проверяет, является ли объект вложенной структурой
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить