tf.keras.utils.Sequence
| Просмотреть исходный код на GitHub |
Базовый объект для подгонки к последовательности данных, например, к набору данных.
Каждый Sequence должен реализовать методы __getitem__ и __len__. Если вы хотите изменить свой набор данных между эпохами, вы можете реализовать on_epoch_end. Метод __getitem__ должен возвращать полную партию.
Примечания:
Sequence — более безопасный способ выполнения многопроцессорной обработки. Эта структура гарантирует, что сеть будет обучаться только один раз на каждом образце за эпоху, что не так в случае с генераторами.
Примеры:
from skimage.io import imread
from skimage.transform import resize
import numpy as np
import math
# Here, `x_set` is list of path to the images
# and `y_set` are the associated classes.
class CIFAR10Sequence(Sequence):
def __init__(self, x_set, y_set, batch_size):
self.x, self.y = x_set, y_set
self.batch_size = batch_size
def __len__(self):
return math.ceil(len(self.x) / self.batch_size)
def __getitem__(self, idx):
batch_x = self.x[idx * self.batch_size:(idx + 1) *
self.batch_size]
batch_y = self.y[idx * self.batch_size:(idx + 1) *
self.batch_size]
return np.array([
resize(imread(file_name), (200, 200))
for file_name in batch_x]), np.array(batch_y)
Методы
on_epoch_end
on_epoch_end()
Метод, вызываемый в конце каждой эпохи.
__getitem__
__getitem__(
index
)
Получает партию по позиции index.
| Аргументы | |
|---|---|
index | позиция партии в последовательности. |
| Возвращает | |
|---|---|
| Партия |
__iter__
__iter__()
Создает генератор, который итерируется по последовательности.
__len__
__len__()
Количество партий в последовательности.
| Возвращает | |
|---|---|
| Количество партий в последовательности. |
© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/keras/utils/Sequence