Метод take_while класса Dataset
Метод take_while применяется к объекту класса Dataset и возвращает новый датасет, который содержит элементы исходного датасета до тех пор, пока переданная функция-предикат возвращает True. Как только предикат возвращает False, выборка элементов немедленно прекращается. Первым параметром метод принимает функцию-предикат, которая принимает элемент датасета и возвращает булево значение.
Синтаксис
dataset.take_while(predicate)
Пример
Давайте создадим датасет из чисел от 1 до 5 и возьмем элементы до тех пор, пока они меньше 3:
import tensorflow as tf
dataset = tf.data.Dataset.range(1, 6)
res = dataset.take_while(lambda x: x < 3)
for element in res:
print(element.numpy())
Результат выполнения кода:
1
2
Пример
Давайте создадим датасет из чисел 10, 20, 30, 5, 40 и применим метод take_while с условием, что элемент меньше 25:
import tensorflow as tf
dataset = tf.data.Dataset.from_tensor_slices([10, 20, 30, 5, 40])
res = dataset.take_while(lambda x: x < 25)
for element in res:
print(element.numpy())
Результат выполнения кода:
10
20
Обратите внимание, что элемент 5 не попал в результат, так как выборка остановилась на элементе 30, который не прошел проверку.