Spec-Zone.ru › TensorFlow 2.4

tf.keras.Sequential

Просмотреть исходный код на GitHub

Sequential объединяет линейную последовательность слоёв в tf.keras.Model.

Наследуется от: Model, Layer, Module

Просмотр псевдонимов

Основные псевдонимы

tf.keras.models.Sequential

Псевдонимы совместимости для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.keras.Sequential, tf.compat.v1.keras.models.Sequential

tf.keras.Sequential(
    layers=None, name=None
)

Sequential предоставляет функции обучения и вывода для этой модели.

Примеры:

# Optionally, the first layer can receive an `input_shape` argument:
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(8, input_shape=(16,)))
# Afterwards, we do automatic shape inference:
model.add(tf.keras.layers.Dense(4))
# This is identical to the following:
model = tf.keras.Sequential()
model.add(tf.keras.Input(shape=(16,)))
model.add(tf.keras.layers.Dense(8))
# Note that you can also omit the `input_shape` argument.
# In that case the model doesn't have any weights until the first call
# to a training/evaluation method (since it isn't yet built):
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(8))
model.add(tf.keras.layers.Dense(4))
# model.weights not created yet
# Whereas if you specify the input shape, the model gets built
# continuously as you are adding layers:
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(8, input_shape=(16,)))
model.add(tf.keras.layers.Dense(4))
len(model.weights)
4
# When using the delayed-build pattern (no input shape specified), you can
# choose to manually build your model by calling
# `build(batch_input_shape)`:
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(8))
model.add(tf.keras.layers.Dense(4))
model.build((None, 16))
len(model.weights)
4
# Note that when using the delayed-build pattern (no input shape specified),
# the model gets built the first time you call `fit`, `eval`, or `predict`,
# or the first time you call the model on some input data.
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(8))
model.add(tf.keras.layers.Dense(1))
model.compile(optimizer='sgd', loss='mse')
# This builds the model for the first time:
model.fit(x, y, batch_size=32, epochs=10)
Аргументы
layers Необязательный список слоёв для добавления в модель.
name Необязательное имя для модели.
Атрибуты
distribute_strategy tf.distribute.Strategy, под управлением которого была создана эта модель.
layers
metrics_names Возвращает метки отображения для всех выходов модели.
Примечание: metrics_names доступны только после обучения/оценки модели на реальных данных.
inputs = tf.keras.layers.Input(shape=(3,))
outputs = tf.keras.layers.Dense(2)(inputs)
model = tf.keras.models.Model(inputs=inputs, outputs=outputs)
model.compile(optimizer="Adam", loss="mse", metrics=["mae"])
model.metrics_names
[]
x = np.random.random((2, 3))
y = np.random.randint(0, 2, (2, 2))
model.fit(x, y)
model.metrics_names
['loss', 'mae']
inputs = tf.keras.layers.Input(shape=(3,))
d = tf.keras.layers.Dense(2, name='out')
output_1 = d(inputs)
output_2 = d(inputs)
model = tf.keras.models.Model(
   inputs=inputs, outputs=[output_1, output_2])
model.compile(optimizer="Adam", loss="mse", metrics=["mae", "acc"])
model.fit(x, (y, y))
model.metrics_names
['loss', 'out_loss', 'out_1_loss', 'out_mae', 'out_acc', 'out_1_mae',
'out_1_acc']
run_eagerly Настраиваемый атрибут, указывающий, должна ли модель работать в режиме eager.

Работа в режиме eager означает, что ваша модель будет выполняться пошагово, как Python-код. Ваша модель может работать медленнее, но вам должно быть легче отлаживать её, заходя в отдельные вызовы слоёв.

По умолчанию мы попытаемся скомпилировать вашу модель в статическую граф для достижения наилучшей производительности выполнения.

Методы

add

Просмотреть исходный код

add(
    layer
)

Добавляет экземпляр слоя поверх стека слоёв.

Аргументы
layer Экземпляр слоя.
Возможные исключения
TypeError Если layer не является экземпляром слоя.
ValueError В случае, если аргумент layer не знает форму входных данных.
ValueError В случае, если аргумент layer имеет несколько выходных тензоров или уже подключен где-то ещё (запрещено в моделях Sequential).

compile

Просмотреть исходный код

compile(
    optimizer='rmsprop', loss=None, metrics=None, loss_weights=None,
    weighted_metrics=None, run_eagerly=None, steps_per_execution=None, **kwargs
)

Настраивает модель для обучения.

Аргументы
optimizer Строка (имя оптимизатора) или экземпляр оптимизатора. См. tf.keras.optimizers.
loss Строка (имя функции потерь), функция потерь или экземпляр tf.keras.losses.Loss. См. tf.keras.losses. Функция потерь — это любой вызываемый объект с сигнатурой loss = fn(y_true, y_pred), где y_true = значения целевых данных с формой = [batch_size, d0, .. dN], за исключением функций потерь для разреженных данных, таких как разреженная категориальная кросс-энтропия, где форма = [batch_size, d0, .. dN-1]. y_pred = предсказанные значения с формой = [batch_size, d0, .. dN]. Она возвращает числовой тензор весовой потери. Если используется пользовательский экземпляр Loss, и reduction задано как NONE, возвращаемое значение имеет форму [batch_size, d0, .. dN-1], то есть значения потерь на образец или на шаг во времени; в противном случае — скаляр. Если у модели несколько выходов, вы можете использовать разные функции потерь для каждого выхода, передав словарь или список функций потерь. Значение потерь, которое будет минимизироваться моделью, будет тогда суммой всех отдельных потерь.
metrics Список метрик, которые будут оцениваться моделью во время обучения и тестирования. Каждая из них может быть строкой (имя встроенной функции), функцией или экземпляром tf.keras.metrics.Metric. См. tf.keras.metrics. Обычно вы будете использовать metrics=['accuracy']. Функция — это любой вызываемый объект с сигнатурой result = fn(y_true, y_pred). Чтобы указать разные метрики для разных выходов многовыходной модели, вы также можете передать словарь, такой как metrics={'output_a': 'accuracy', 'output_b': ['accuracy', 'mse']}. Вы также можете передать список (длина = длина(выходов)) списков метрик, таких как metrics=[['accuracy'], ['accuracy', 'mse']] или metrics=['accuracy', ['accuracy', 'mse']]. Когда вы передаёте строки 'accuracy' или 'acc', мы преобразуем их в одну из tf.keras.metrics.BinaryAccuracy, tf.keras.metrics.CategoricalAccuracy, tf.keras.metrics.SparseCategoricalAccuracy в зависимости от используемой функции потерь и формы выходных данных модели. Мы делаем аналогичное преобразование для строк 'crossentropy' и 'ce'.
loss_weights Необязательный список или словарь, указывающие скалярные коэффициенты (числа с плавающей точкой Python) для взвешивания вкладов потерь разных выходных данных модели. Значение потерь, которое будет минимизироваться моделью, будет затем взвешенной суммой всех отдельных потерь, взвешенных по коэффициентам loss_weights. Если это список, ожидается 1:1 соответствие выходным данным модели. Если это словарь, ожидается отображение имён выходов (строк) на скалярные коэффициенты.
weighted_metrics Список метрик, которые будут оцениваться и взвешиваться весами образцов или весами классов во время обучения и тестирования.
run_eagerly Булево. По умолчанию False. Если True, логика этого Model не будет заключена в tf.function. Рекомендуется оставить это как None, если ваш Model не может быть запущен внутри tf.function.
steps_per_execution Целое число. По умолчанию 1. Количество пачек, выполняемых во время каждого вызова tf.function. Выполнение нескольких пачек внутри одного вызова tf.function может значительно улучшить производительность на TPU или на небольших моделях с большой накладными расходами Python. В максимальном случае будет выполнена одна полная эпоха за каждый запуск. Если передано число больше размера эпохи, выполнение будет усечено до размера эпохи. Обратите внимание, что если steps_per_execution установлено как N, Callback.on_batch_begin и Callback.on_batch_end методы будут вызываться только каждые N пачек (т.е. до/после каждого выполнения tf.function).
**kwargs Аргументы, поддерживаемые только для обратной совместимости.
Возможные исключения
ValueError В случае неверных аргументов для optimizer, loss или metrics.

evaluate

Просмотреть исходный код

evaluate(
    x=None, y=None, batch_size=None, verbose=1, sample_weight=None, steps=None,
    callbacks=None, max_queue_size=10, workers=1, use_multiprocessing=False,
    return_dict=False
)

Возвращает значение потерь и значения метрик для модели в режиме тестирования.

Вычисление выполняется по частям (см. аргумент batch_size).

Аргументы
x Данные для входных данных. Это может быть:
  • Массив NumPy (или массив-подобный объект), или список массивов (в случае модели с несколькими входами).
  • Тензор TensorFlow или список тензоров (в случае модели с несколькими входами).
  • Словарь, сопоставляющий имена входов с соответствующими массивами/тензорами, если модель имеет именованные входы.
  • Набор данных tf.data. Должен возвращать кортеж либо (inputs, targets) либо (inputs, targets, sample_weights).
  • Генератор или keras.utils.Sequence, возвращающий (inputs, targets) или (inputs, targets, sample_weights). Более подробное описание поведения распаковки для типов итераторов (Dataset, генератор, Sequence) приведено в разделе Unpacking behavior for iterator-like inputs документации Model.fit.
y Данные для целевых значений. Как и данные для входных значений x, они могут быть массивами NumPy или тензорами TensorFlow. Они должны быть согласованы с данными для входных значений x (вы не можете иметь входные данные NumPy и целевые данные тензорного типа, или наоборот). Если x представляет собой набор данных, генератор или экземпляр keras.utils.Sequence, y не нужно указывать (так как целевые значения будут получены из итератора/набора данных).
batch_size Целое число или None. Количество образцов в пакет вычислений. Если не указано, по умолчанию batch_size будет 32. Не указывайте batch_size если ваши данные представлены в виде набора данных, генераторов или экземпляров keras.utils.Sequence (поскольку они генерируют пакеты).
verbose 0 или 1. Режим отображения. 0 = без отображения, 1 = индикатор прогресса.
sample_weight Необязательный массив NumPy весов для тестовых образцов, используемых для взвешивания функции потерь. Вы можете передать плоский (одномерный) массив NumPy с такой же длиной, как у входных образцов (1:1 соответствие между весами и образцами), или, в случае временных данных, вы можете передать двумерный массив с формой (samples, sequence_length), чтобы применить разные веса к каждому временнóму шагу каждого образца. Этот аргумент не поддерживается, когда x является набором данных, вместо этого передайте веса образцов как третий элемент x.
steps Целое число или None. Общее количество шагов (пакетов образцов) до завершения этапа оценки. Игнорируется по умолчанию None. Если x является набором данных tf.data, и steps равно None, 'evaluate' будет выполняться до исчерпания набора данных. Этот аргумент не поддерживается для входных массивов.
callbacks Список экземпляров keras.callbacks.Callback. Список колбеков для применения во время оценки. См. callbacks.
max_queue_size Целое число. Используется только для генератора или входного keras.utils.Sequence. Максимальный размер очереди генератора. Если не указано, по умолчанию max_queue_size будет 10.
workers Целое число. Используется только для генератора или входного keras.utils.Sequence. Максимальное количество процессов для запуска при использовании потоковой обработки на основе процессов. Если не указано, по умолчанию workers будет 1. Если 0, генератор будет выполняться в основном потоке.
use_multiprocessing Булево значение. Используется только для генератора или входного keras.utils.Sequence. Если True, используется потоковая обработка на основе процессов. Если не указано, по умолчанию use_multiprocessing будет False. Обратите внимание, что из-за того, что эта реализация использует многопроцессорность, не следует передавать не-сериализуемые аргументы в генератор, так как их сложно передать дочерним процессам.
return_dict Если True, результаты потерь и метрик возвращаются как словарь, где каждый ключ — это имя метрики. Если False, они возвращаются как список.

См. обсуждение Unpacking behavior for iterator-like inputs для Model.fit.

Возвращаемые значения
Скалярная тестовая потеря (если у модели один выход и нет метрик) или список скаляров (если у модели несколько выходов и/или метрик). Атрибут model.metrics_names предоставит вам метки отображения для скалярных выходов.
Исключения
RuntimeError Если model.evaluate обернут в tf.function.
ValueError в случае некорректных аргументов.

evaluate_generator

Просмотреть исходный код

evaluate_generator(
    generator, steps=None, callbacks=None, max_queue_size=10, workers=1,
    use_multiprocessing=False, verbose=0
)

Оценивает модель на основе генератора данных.

УСТЕРЕГШЕЕ:

Model.evaluate теперь поддерживает генераторы, поэтому использование этого метода больше не требуется.

fit

Просмотреть исходный код

fit(
    x=None, y=None, batch_size=None, epochs=1, verbose=1, callbacks=None,
    validation_split=0.0, validation_data=None, shuffle=True, class_weight=None,
    sample_weight=None, initial_epoch=0, steps_per_epoch=None,
    validation_steps=None, validation_batch_size=None, validation_freq=1,
    max_queue_size=10, workers=1, use_multiprocessing=False
)

Обучает модель для фиксированного числа эпох (итераций по набору данных).

Аргументы
x Данные для ввода. Это может быть:
  • Массив Numpy (или подобный массив), или список массивов (если у модели несколько входных данных).
  • Тензор TensorFlow, или список тензоров (если у модели несколько входных данных).
  • Словарь, сопоставляющий имена входных данных соответствующим массивам/тензорам, если у модели есть именованные входные данные.
  • Набор данных tf.data. Должен возвращать кортеж из (inputs, targets) или (inputs, targets, sample_weights).
  • Генератор или keras.utils.Sequence, возвращающий (inputs, targets) или (inputs, targets, sample_weights). Более подробное описание поведения распаковки для итераторных типов (Dataset, генератор, Sequence) приведено ниже.
y Данные целевого значения. Подобно данным для ввода x, они могут быть массивами Numpy или тензорами TensorFlow. Они должны быть согласованы с x (нельзя иметь Numpy-входные данные и тензорные целевые значения или наоборот). Если x представляет собой набор данных, генератор или экземпляр keras.utils.Sequence, y не должно быть указано (поскольку целевые значения будут получены из x).
batch_size Целое число или None. Количество образцов на обновление градиента. Если не указано, batch_size будет по умолчанию равно 32. Не указывайте batch_size если ваши данные представлены наборами данных, генераторами или экземплярами keras.utils.Sequence (поскольку они генерируют пакеты).
epochs Целое число. Количество эпох для обучения модели. Эпоха — это итерация по всем x и y данным. Обратите внимание, что в сочетании с initial_epoch, epochs следует понимать как "конечная эпоха". Модель обучается не за количество итераций, заданных epochs, а лишь до достижения эпохи с индексом epochs.
verbose 0, 1 или 2. Режим отображения. 0 = без вывода, 1 = индикатор прогресса, 2 = одна строка на эпоху. Обратите внимание, что индикатор прогресса не очень полезен при записи в файл, поэтому verbose=2 рекомендуется, когда программа не запускается интерактивно (например, в производственной среде).
callbacks Список экземпляров keras.callbacks.Callback. Список колбэков для применения во время обучения. См. tf.keras.callbacks. Обратите внимание, что колбэки tf.keras.callbacks.ProgbarLogger и tf.keras.callbacks.History создаются автоматически и не нужно передавать в model.fit. tf.keras.callbacks.ProgbarLogger создаётся или нет в зависимости от аргумента verbose к model.fit.
validation_split Число с плавающей точкой от 0 до 1. Доля обучающих данных, которая будет использоваться как данные для валидации. Модель отделит эту долю обучающих данных, не будет обучаться на ней и будет оценивать функцию потерь и любые метрики модели на этих данных в конце каждой эпохи. Данные для валидации выбираются из последних образцов в x и y данных, до перемешивания. Этот аргумент не поддерживается, когда x является набором данных, генератором или экземпляром keras.utils.Sequence.
validation_data Данные, на которых необходимо оценить функцию потерь и любые метрики модели в конце каждой эпохи. Модель на этих данных не будет обучаться. Следовательно, обратите внимание на тот факт, что потери валидации данных, предоставленных с помощью validation_split или validation_data, не зависят от регуляризующих слоёв, таких как шум и отбрасывание. validation_data переопределит validation_split. validation_data может быть:
  • кортежем (x_val, y_val) массивов Numpy или тензоров
  • кортежем (x_val, y_val, val_sample_weights) массивов Numpy
  • набором данных Для первых двух случаев должен быть предоставлен batch_size . Для последнего случая validation_steps может быть предоставлен. Обратите внимание, что validation_data не поддерживает все типы данных, которые поддерживаются в x, например, словарь, генератор или keras.utils.Sequence.
  • shuffle Булево значение (перемешивать ли обучающие данные перед каждой эпохой) или строка ('batch'). Этот аргумент игнорируется, когда x является генератором. 'batch' — специальный вариант для работы с ограничениями данных HDF5; он перемешивает данные в блоках размером с пакет. Не имеет эффекта, когда steps_per_epoch не является None.
    class_weight Необязательный словарь, сопоставляющий индексы классов (целые числа) с весом (вещественное число), используемым для взвешивания функции потерь (только во время обучения). Это может быть полезно, чтобы модель уделяла больше внимания образцам из недопредставленного класса.
    sample_weight Необязательный массив Numpy весов для обучающих образцов, используемых для взвешивания функции потерь (только во время обучения). Вы можете передать плоский (одномерный) массив Numpy с той же длиной, что и входные образцы (1:1 соответствие между весами и образцами), или, в случае временных данных, вы можете передать двумерный массив с формой (samples, sequence_length), чтобы применить разные веса к каждому шагу времени каждого образца. Этот аргумент не поддерживается, когда x является набором данных, генератором или keras.utils.Sequence экземпляром; вместо этого предоставьте sample_weights как третий элемент x.
    initial_epoch Целое число. Эпоха, с которой начать обучение (полезно для возобновления предыдущего обучения).
    steps_per_epoch Целое число или None. Общее число шагов (пакетов образцов) до объявления одной эпохи законченной и начала следующей эпохи. При обучении с входными тензорами, такими как тензоры данных TensorFlow, значение None по умолчанию равно количеству образцов в наборе данных, делённому на размер пакета, или 1, если это невозможно определить. Если x — набор данных tf.data, а 'steps_per_epoch' — None, эпоха будет выполняться до тех пор, пока набор данных не исчерпается. При передаче бесконечно повторяющегося набора данных, вы должны указать аргумент steps_per_epoch. Этот аргумент не поддерживается с входными данными в виде массивов.
    validation_steps Актуально только если validation_data предоставлен и представляет собой набор данных tf.data. Общее число шагов (пакетов образцов) для извлечения перед остановкой при выполнении валидации в конце каждой эпохи. Если 'validation_steps' — None, валидация будет выполняться до тех пор, пока набор данных validation_data не исчерпается. В случае бесконечно повторяющегося набора данных это приведёт к бесконечному циклу. Если 'validation_steps' задано и будет использована только часть набора данных, оценка будет начинаться с начала набора данных в каждой эпохе. Это гарантирует, что каждый раз будут использоваться те же образцы для валидации.
    validation_batch_size Целое число или None. Количество образцов на пакет для валидации. Если не указано, будет по умолчанию равно batch_size. Не указывайте validation_batch_size если ваши данные представлены наборами данных, генераторами или keras.utils.Sequence экземплярами (поскольку они генерируют пакеты).
    validation_freq Актуально только если предоставлены данные для валидации. Целое число или экземпляр collections_abc.Container (например, список, кортеж и т.д.). Если целое число, определяет, сколько эпох обучения выполнить до новой проверки валидации, например, validation_freq=2 выполняет валидацию каждую 2 эпоху. Если контейнер, указывает эпохи, в которых необходимо выполнить валидацию, например, validation_freq=[1, 2, 10] выполняет валидацию в конце 1-й, 2-й и 10-й эпох.
    max_queue_size Целое число. Используется только для входных данных генератора или keras.utils.Sequence. Максимальный размер очереди генератора. Если не указано, max_queue_size будет по умолчанию равно 10.
    workers Целое число. Используется только для входных данных генератора или keras.utils.Sequence. Максимальное количество процессов для запуска при использовании многопоточности на основе процессов. Если не указано, workers будет по умолчанию равно 1. Если 0, генератор будет выполняться в главном потоке.
    use_multiprocessing Булево значение. Используется только для входных данных генератора или keras.utils.Sequence. Если True, использовать многопоточность на основе процессов. Если не указано, use_multiprocessing будет по умолчанию равно False. Обратите внимание, что поскольку эта реализация использует многопроцессорность, вы не должны передавать несериализуемые аргументы генератору, так как их трудно передать дочерним процессам.

    Поведение распаковки для итераторных входных данных: Общий шаблон — передавать tf.data.Dataset, генератор или tf.keras.utils.Sequence в аргумент x метода fit, который фактически возвращает не только признаки (x), но и, необязательно, целевые значения (y) и веса образцов. Keras требует, чтобы выходные данные таких итераторов были однозначными. Итератор должен возвращать кортеж длиной 1, 2 или 3, где необязательные второй и третий элементы будут использованы для y и sample_weight соответственно. Любой другой тип будет обернут в кортеж длиной один, что фактически рассматривает всё как 'x'. При возврате словарей они должны соответствовать структуре кортежа верхнего уровня. Например, ({"x0": x0, "x1": x1}, y). Keras не будет пытаться разделить признаки, целевые значения и веса из ключей одного словаря. Заметным неподдерживаемым типом данных является namedtuple. Причина в том, что он ведет себя как упорядоченный тип данных (кортеж) и как тип данных сопоставлений (словарь). Таким образом, с учётом namedtuple вида: namedtuple("example_tuple", ["y", "x"]) неясно, следует ли изменять порядок элементов при интерпретации значения. Ещё хуже ситуация с кортежем вида: namedtuple("other_tuple", ["x", "y", "z"]), где неясно, был ли кортеж предназначен для распаковки в x, y и sample_weight или для передачи в качестве одного элемента в x. В результате код обработки данных просто поднимет ValueError, если встретит namedtuple. (Вместе с инструкциями по решению проблемы.)

    Возвращаемое значение
    Объект History . Его атрибут History.history — запись значений потерь обучения и значений метрик на последовательных эпохах, а также значений потерь валидации и значений метрик валидации (если применимо).
    Возвращает исключение
    RuntimeError
    1. Если модель никогда не компилировалась или,
    2. Если model.fit заключён в tf.function.
    ValueError В случае несоответствия между предоставленными входными данными и ожиданиями модели или когда входные данные пустые.

    fit_generator

    Просмотреть исходный код

    fit_generator(
        generator, steps_per_epoch=None, epochs=1, verbose=1, callbacks=None,
        validation_data=None, validation_steps=None, validation_freq=1,
        class_weight=None, max_queue_size=10, workers=1, use_multiprocessing=False,
        shuffle=True, initial_epoch=0
    )
    

    Обучает модель на данных, сгенерированных по частям Python-генератором.

    УСТАРЕЛО:

    Model.fit теперь поддерживает генераторы, поэтому нет необходимости использовать этот метод.

    get_layer

    Просмотреть исходный код

    get_layer(
        name=None, index=None
    )
    

    Возвращает слой, на основе либо его имени (уникальное), либо индекса.

    Если name и index оба предоставлены, index будет иметь приоритет. Индексы основаны на порядке горизонтального обхода графа (снизу вверх).

    Аргументы
    name Строка, имя слоя.
    index Целое число, индекс слоя.
    Возвращает
    Экземпляр слоя.
    Возвращает исключение
    ValueError В случае неверного имени или индекса слоя.

    load_weights

    Просмотреть исходный код

    load_weights(
        filepath, by_name=False, skip_mismatch=False, options=None
    )
    

    Загружает все весы слоёв, либо из файла весов TensorFlow, либо из HDF5.

    Если by_name равно False, весы загружаются на основе топологии сети. Это означает, что архитектура должна быть такой же, как при сохранении весов. Обратите внимание, что слои, у которых нет весов, не учитываются при топологическом упорядочении, поэтому добавление или удаление слоёв допустимо, если они не имеют весов.

    Если by_name равно True, весы загружаются в слои только если у них одинаковые имена. Это полезно для тонкой настройки или переноса обучения моделей, где некоторые слои изменились.

    Только топологическая загрузка (by_name=False) поддерживается при загрузке весов из формата TensorFlow. Обратите внимание, что топологическая загрузка немного отличается между форматами TensorFlow и HDF5 для пользовательских классов, наследуемых от tf.keras.Model: HDF5 загружает на основе сплющенного списка весов, а формат TensorFlow загружает на основе локальных имён атрибутов, которым назначены слои в конструкторе Model.

    Аргументы
    filepath Путь к файлу весов для загрузки. Для файлов весов в формате TensorFlow это префикс файла (такой же, что и передавался в save_weights).
    by_name Булево, загружать ли весы по имени или топологическому порядку. Только топологическая загрузка поддерживается для файлов весов в формате TensorFlow.
    skip_mismatch Булево, пропустить ли загрузку слоёв, где есть несоответствие в количестве весов или форме весов (действительно только когда by_name=True).
    options Опциональный объект tf.train.CheckpointOptions, который задаёт параметры загрузки весов.
    Возвращает
    При загрузке файла весов в формате TensorFlow возвращает тот же объект статуса, что и tf.train.Checkpoint.restore. При построении графа операции восстановления запускаются автоматически, как только сеть построена (при первом вызове для пользовательских классов, наследуемых от Model, немедленно, если она уже построена).

    При загрузке весов в формате HDF5 возвращает None.

    Возвращает исключение
    ImportError Если h5py недоступен и файл весов в формате HDF5.
    ValueError Если skip_mismatch установлено в True при by_name равном False.

    make_predict_function

    Просмотреть исходный код

    make_predict_function()
    

    Создаёт функцию, выполняющую один шаг инференции.

    Этот метод может быть переопределён для поддержки пользовательской логики инференции. Этот метод вызывается Model.predict и Model.predict_on_batch.

    Обычно этот метод напрямую управляет tf.function и tf.distribute.Strategy настройками и делегирует фактическую логику оценки Model.predict_step.

    Эта функция кэшируется в первый раз, когда вызывается Model.predict или Model.predict_on_batch. Кэш очищается при каждом вызове Model.compile.

    Возвращает
    Функция. Функция, созданная этим методом, должна принимать tf.data.Iterator и возвращать выходные данные Model.

    make_test_function

    Просмотреть исходный код

    make_test_function()
    

    Создаёт функцию, выполняющую один шаг оценки.

    Этот метод может быть переопределён для поддержки пользовательской логики оценки. Этот метод вызывается Model.evaluate и Model.test_on_batch.

    Обычно этот метод напрямую управляет tf.function и tf.distribute.Strategy настройками и делегирует фактическую логику оценки Model.test_step.

    Эта функция кэшируется в первый раз, когда вызывается Model.evaluate или Model.test_on_batch. Кэш очищается при каждом вызове Model.compile.

    Возвращает
    Функция. Функция, созданная этим методом, должна принимать tf.data.Iterator и возвращать dict, содержащий значения, которые будут переданы tf.keras.Callbacks.on_test_batch_end.

    make_train_function

    Просмотреть исходный код

    make_train_function()
    

    Создаёт функцию, выполняющую один шаг обучения.

    Этот метод может быть переопределён для поддержки пользовательской логики обучения. Этот метод вызывается Model.fit и Model.train_on_batch.

    Обычно этот метод напрямую управляет tf.function и tf.distribute.Strategy настройками и делегирует фактическую логику обучения Model.train_step.

    Эта функция кэшируется в первый раз, когда вызывается Model.fit или Model.train_on_batch. Кэш очищается при каждом вызове Model.compile.

    Возвращает
    Функция. Функция, созданная этим методом, должна принимать tf.data.Iterator и возвращать dict, содержащий значения, которые будут переданы tf.keras.Callbacks.on_train_batch_end, такие как {'loss': 0.2, 'accuracy': 0.7}.

    pop

    Просмотреть исходный код

    pop()
    

    Удаляет последний слой в модели.

    Возвращает исключение
    TypeError если в модели нет слоёв.

    predict

    Просмотреть исходный код

    predict(
        x, batch_size=None, verbose=0, steps=None, callbacks=None, max_queue_size=10,
        workers=1, use_multiprocessing=False
    )
    

    Генерирует предсказания для входных выборок.

    Вычисление выполняется по частям. Этот метод оптимизирован для производительности с большими входными данными. Для небольших объёмов входных данных, помещающихся в одну партию, рекомендуется использование __call__ для более быстрого выполнения, например, model(x), или model(x, training=False) если у вас есть слои, такие как tf.keras.layers.BatchNormalization, которые ведут себя по-разному при инференции. Также обратите внимание на то, что тестовая потеря не зависит от регуляризационных слоёв, таких как шум и дропаут.

    Аргументы
    x Образцы входных данных. Это может быть:
    • Массив Numpy (или массив-подобный объект), или список массивов (в случае модели с несколькими входами).
    • Тензор TensorFlow, или список тензоров (в случае модели с несколькими входами).
    • Набор данных tf.data.
    • Генератор или экземпляр keras.utils.Sequence. Более подробное описание поведения распаковки для итерационных типов (Dataset, генератор, Sequence) приведено в разделе Unpacking behavior for iterator-like inputs документации Model.fit.
    batch_size Целое число или None. Количество образцов в батче. Если не указано, значение по умолчанию для batch_size равно 32. Не указывайте batch_size , если ваши данные представлены в виде набора данных, генераторов или экземпляров keras.utils.Sequence (поскольку они генерируют батчи).
    verbose Режим отображения, 0 или 1.
    steps Общее количество шагов (батчей образцов) до объявления завершения раунда предсказаний. Игнорируется при значении по умолчанию для None. Если x — набор данных tf.data и steps равно None, predict будет выполняться до исчерпания входных данных из набора.
    callbacks Список экземпляров keras.callbacks.Callback. Список колбэков для применения во время предсказаний. См. колбэки.
    max_queue_size Целое число. Используется только для генератора или входных данных keras.utils.Sequence. Максимальный размер очереди генератора. Если не указано, значение по умолчанию для max_queue_size равно 10.
    workers Целое число. Используется только для генератора или входных данных keras.utils.Sequence. Максимальное количество процессов для запуска при использовании многопоточной обработки на основе процессов. Если не указано, значение по умолчанию для workers равно 1. Если 0, генератор будет выполняться в основном потоке.
    use_multiprocessing Булево значение. Используется только для генератора или входных данных keras.utils.Sequence. Если True, использовать многопоточную обработку на основе процессов. Если не указано, значение по умолчанию для use_multiprocessing равно False. Обратите внимание, что из-за того, что эта реализация использует многопроцессорную обработку, вы не должны передавать несериализуемые аргументы в генератор, так как они не могут быть легко переданы дочерним процессам.

    См. обсуждение Unpacking behavior for iterator-like inputs для Model.fit. Обратите внимание, что Model.predict использует те же правила интерпретации, что и Model.fit и Model.evaluate, поэтому входные данные должны быть однозначными для всех трех методов.

    Возвращаемое значение
    Массив(ы) Numpy предсказаний.
    Исключения
    RuntimeError Если model.predict обернут в tf.function.
    ValueError В случае несовпадения между предоставленными входными данными и ожиданиями модели, или если состояние модели получает количество образцов, не кратное размеру пакета.

    predict_classes

    Открыть исходный код

    predict_classes(
        x, batch_size=32, verbose=0
    )
    

    Генерирует прогнозы класса для входных образцов.

    Вводные образцы обрабатываются по частям.

    Аргументы
    x входные данные, как массив Numpy или список массивов Numpy (если у модели несколько входов).
    batch_size целое число.
    verbose режим отображения, 0 или 1.
    Возвращаемое значение
    Массив Numpy прогнозов класса.

    predict_generator

    Открыть исходный код

    predict_generator(
        generator, steps=None, callbacks=None, max_queue_size=10, workers=1,
        use_multiprocessing=False, verbose=0
    )
    

    Генерирует прогнозы для входных образцов из генератора данных.

    УСТАРЕЛО:

    Model.predict теперь поддерживает генераторы, поэтому использование этого метода больше не требуется.

    predict_on_batch

    Открыть исходный код

    predict_on_batch(
        x
    )
    

    Возвращает прогнозы для одного набора образцов.

    Аргументы
    x Входные данные. Это может быть: - Массив Numpy (или массив-подобный объект), или список массивов (в случае модели с несколькими входами). - Тензор TensorFlow, или список тензоров (в случае модели с несколькими входами).
    Возвращаемое значение
    Массив(ы) Numpy предсказаний.
    Исключения
    RuntimeError Если model.predict_on_batch обернут в tf.function.
    ValueError В случае несовпадения между предоставленным количеством входов и ожиданиями модели.

    predict_proba

    Открыть исходный код

    predict_proba(
        x, batch_size=32, verbose=0
    )
    

    Генерирует прогнозы вероятности класса для входных образцов.

    Вводные образцы обрабатываются по частям.

    Аргументы
    x входные данные, как массив Numpy или список массивов Numpy (если у модели несколько входов).
    batch_size целое число.
    verbose режим отображения, 0 или 1.
    Возвращаемое значение
    Массив Numpy прогнозов вероятности.

    predict_step

    Открыть исходный код

    predict_step(
        data
    )
    

    Логика одного шага вывода.

    Этот метод может быть переопределен для поддержки пользовательской логики вывода. Этот метод вызывается методом Model.make_predict_function.

    Этот метод должен содержать математическую логику для одного шага вывода. Обычно это включает в себя прямой проход.

    Подробные параметры как выполняется эта логика (например, параметры tf.function и tf.distribute.Strategy), должны быть оставлены методу Model.make_predict_function, который также может быть переопределен.

    Аргументы
    data Вложенная структура Tensor.
    Возвращаемое значение
    Результат одного шага вывода, обычно выходной результат вызова Model на данных.

    reset_metrics

    Открыть исходный код

    reset_metrics()
    

    Сбрасывает состояние всех метрик в модели.

    Примеры:

    inputs = tf.keras.layers.Input(shape=(3,))
    outputs = tf.keras.layers.Dense(2)(inputs)
    model = tf.keras.models.Model(inputs=inputs, outputs=outputs)
    model.compile(optimizer="Adam", loss="mse", metrics=["mae"])
    
    x = np.random.random((2, 3))
    y = np.random.randint(0, 2, (2, 2))
    _ = model.fit(x, y, verbose=0)
    assert all(float(m.result()) for m in model.metrics)
    
    model.reset_metrics()
    assert all(float(m.result()) == 0 for m in model.metrics)
    

    reset_states

    Открыть исходный код

    reset_states()
    

    save

    Открыть исходный код

    save(
        filepath, overwrite=True, include_optimizer=True, save_format=None,
        signatures=None, options=None, save_traces=True
    )
    

    Сохраняет модель в формате Tensorflow SavedModel или в одном HDF5 файле.

    Для получения подробностей см. tf.keras.models.save_model или руководство по сериализации и сохранению Serialization and Saving guide.

    END_OF_DOCUMENT_MARKER
    Аргументы
    filepath Строка, PathLike, путь к сохраненному SavedModel или H5 файлу для сохранения модели.
    overwrite Нужно ли молча перезаписывать любой существующий файл в целевом месте или предоставить пользователю возможность подтверждения.
    include_optimizer Если True, сохранить состояние оптимизатора вместе.
    save_format Либо 'tf', либо 'h5', указывающие, нужно ли сохранять модель в формате Tensorflow SavedModel или HDF5. По умолчанию 'tf' в TF 2.X и 'h5' в TF 1.X.
    signatures Подписи для сохранения с SavedModel. Применимо только к формату 'tf'. Подробности см. в аргументе signatures в tf.saved_model.save.
    options (только для формата SavedModel) объект tf.saved_model.SaveOptions, определяющий параметры сохранения в SavedModel.
    save_traces (только для формата SavedModel) При включении SavedModel будет хранить следы функций для каждого слоя. Это можно отключить, чтобы сохранять только конфигурации каждого слоя. По умолчанию True. Отключение уменьшит время сериализации и размер файла, но требует, чтобы все пользовательские слои/модели реализовывали метод get_config().

    Пример:

    from keras.models import load_model
    
    model.save('my_model.h5')  # creates a HDF5 file 'my_model.h5'
    del model  # deletes the existing model
    
    # returns a compiled model
    # identical to the previous one
    model = load_model('my_model.h5')
    

    save_weights

    Посмотреть исходный код

    save_weights(
        filepath, overwrite=True, save_format=None, options=None
    )
    

    Сохраняет все веса слоёв.

    Сохраняет в формате HDF5 или TensorFlow в зависимости от аргумента save_format.

    При сохранении в формате HDF5 файл весов содержит:

    • layer_names (атрибут), список строк (упорядоченные имена слоёв модели).
    • Для каждого слоя, атрибут group, названный layer.name.
      • Для каждой такой группы слоёв, атрибут weight_names, список строк (упорядоченные имена тензоров весов слоя).
      • Для каждого веса в слое, набор данных, хранящий значение веса, названный именем тензора веса.

    При сохранении в формате TensorFlow все объекты, на которые ссылается сеть, сохраняются в том же формате, что и tf.train.Checkpoint, включая любые экземпляры Layer или экземпляры Optimizer присвоенные атрибутам объекта. Для сетей, построенных из входов и выходов с использованием tf.keras.Model(inputs, outputs), экземпляры Layer которые используются сетью, отслеживаются/сохраняются автоматически. Для пользовательских классов, унаследованных от tf.keras.Model, экземпляры Layer должны быть назначены атрибутам объекта, обычно в конструкторе. См. документацию tf.train.Checkpoint и tf.keras.Model для получения подробностей.

    Несмотря на одинаковые форматы, не смешивайте save_weights и tf.train.Checkpoint. Точки останова, сохраненные с помощью Model.save_weights, должны загружаться с помощью Model.load_weights. Точки останова, сохраненные с использованием tf.train.Checkpoint.save, должны восстанавливаться с помощью соответствующей tf.train.Checkpoint.restore. Предпочтительнее использовать tf.train.Checkpoint вместо save_weights для контрольных точек обучения.

    Формат TensorFlow сопоставляет объекты и переменные, начиная с корневого объекта, self для save_weights, и жадно сопоставляет имена атрибутов. Для Model.save это Model, а для Checkpoint.save это Checkpoint, даже если у Checkpoint есть прикреплённая модель. Это означает, что сохранение tf.keras.Model с помощью save_weights и загрузка в tf.train.Checkpoint с прикрепленным Model не будет соответствовать переменным Model. Обратитесь к руководству по контрольным точкам обучения для получения подробной информации о формате TensorFlow.

    Аргументы
    filepath Строка или PathLike, путь к файлу для сохранения весов. При сохранении в формате TensorFlow это префикс, используемый для файлов контрольных точек (генерируется несколько файлов). Обратите внимание, что суффикс '.h5' приводит к сохранению весов в формате HDF5.
    overwrite Нужно ли молча перезаписывать любой существующий файл в целевом месте или предоставить пользователю возможность подтверждения.
    save_format Либо 'tf', либо 'h5'. filepath с расширением '.h5' или '.keras' по умолчанию будет HDF5, если save_format равно None. В противном случае None по умолчанию равно 'tf'.
    options Необязательный объект tf.train.CheckpointOptions, определяющий параметры сохранения весов.
    Исключения
    ImportError Если h5py недоступен при попытке сохранения в формате HDF5.
    ValueError При неверных/неизвестных аргументах формата.

    summary

    Посмотреть исходный код

    summary(
        line_length=None, positions=None, print_fn=None
    )
    

    Выводит текстовое описание сети.

    Аргументы
    line_length Общая длина выводимых строк (например, настройте это, чтобы адаптировать вывод к различным размерам окон терминала).
    positions Относительное или абсолютное положение элементов лога в каждой строке. Если не указано, по умолчанию [.33, .55, .67, 1.].
    print_fn Функция вывода. По умолчанию print. Она будет вызываться для каждой строки описания. Вы можете установить её в пользовательскую функцию для захвата текстового описания.
    Исключения
    ValueError Если summary() вызывается до построения модели.

    test_on_batch

    Посмотреть исходный код

    test_on_batch(
        x, y=None, sample_weight=None, reset_metrics=True, return_dict=False
    )
    

    Проверяет модель на одном наборе образцов.

    Аргументы
    x Данные ввода. Может быть: - Массив NumPy (или массив-подобный объект), или список массивов (если у модели несколько входов). - Тензор TensorFlow, или список тензоров (если у модели несколько входов).
    • Словарь, сопоставляющий имена входов соответствующим массивам/тензорам, если у модели есть именованные входы.
    y Данные целевого значения. Как и данные ввода x, могут быть либо массивами NumPy, либо тензорами TensorFlow. Они должны быть согласованы с x (нельзя иметь входы NumPy и целевые значения тензоров, или наоборот).
    sample_weight Необязательный массив той же длины, что и x, содержащий веса, применяемые к потере модели для каждого образца. В случае временных данных вы можете передать двумерный массив с формой (образцы, длина_последовательности), чтобы применить разные веса к каждому шагу времени каждого образца.
    reset_metrics Если True, метрики, возвращаемые, будут только для этой партии. Если False, метрики будут накапливаться совокупно по партиям.
    return_dict Если True, результаты потерь и метрик возвращаются как словарь, где каждый ключ - имя метрики. Если False, они возвращаются как список.
    Возвращаемые значения
    Скалярная потеря при тестировании (если у модели один выход и нет метрик) или список скаляров (если у модели несколько выходов и/или метрик). Атрибут model.metrics_names предоставляет метки для скалярных выходов.
    Исключения
    RuntimeError Если model.test_on_batch обернут в tf.function.
    ValueError В случае неверных пользовательских аргументов.

    test_step

    Посмотреть исходный код

    test_step(
        data
    )
    

    Логика одного шага оценки.

    Этот метод может быть переопределён для поддержки пользовательской логики оценки. Этот метод вызывается Model.make_test_function.

    Эта функция должна содержать математическую логику для одного шага оценки. Обычно это включает в себя прямой проход, вычисление потерь и обновления метрик.

    Подробности конфигурации того, как выполняется эта логика (например, tf.function и tf.distribute.Strategy настройки), должны быть оставлены Model.make_test_function, который также можно переопределить.

    Аргументы
    data Вложенная структура Tensor.
    Возвращаемое значение
    Объект dict содержащий значения, которые будут переданы в tf.keras.callbacks.CallbackList.on_train_batch_end. Как правило, возвращаются значения метрик Model.

    to_json

    Просмотреть исходный код

    to_json(
        **kwargs
    )
    

    Возвращает строку в формате JSON, содержащую конфигурацию сети.

    Для загрузки сети из файла сохранения в формате JSON используйте keras.models.model_from_json(json_string, custom_objects={}).

    Аргументы
    **kwargs Дополнительные ключевые аргументы, которые будут переданы в json.dumps().
    Возвращаемое значение
    Строка в формате JSON.

    to_yaml

    Просмотреть исходный код

    to_yaml(
        **kwargs
    )
    

    Возвращает строку в формате YAML, содержащую конфигурацию сети.

    Для загрузки сети из файла сохранения в формате YAML используйте keras.models.model_from_yaml(yaml_string, custom_objects={}).

    custom_objects должен быть словарем, отображающим имена пользовательских функций потерь/слоев и т.д. соответствующим функциям/классам.

    Аргументы
    **kwargs Дополнительные ключевые аргументы, которые будут переданы в yaml.dump().
    Возвращаемое значение
    Строка в формате YAML.
    Исключения
    ImportError если модуль yaml не найден.

    train_on_batch

    Просмотреть исходный код

    train_on_batch(
        x, y=None, sample_weight=None, class_weight=None, reset_metrics=True,
        return_dict=False
    )
    

    Выполняет одну итерацию градиентного спуска на одном батче данных.

    Аргументы
    x Данные для ввода. Может быть:
    • Массив Numpy (или аналогичный), или список массивов (если модель имеет несколько входов).
    • Тензор TensorFlow, или список тензоров (если модель имеет несколько входов).
    • Словарь, сопоставляющий имена входов соответствующим массивам/тензорам, если модель имеет именованные входы.
    y Данные целевых значений. Как и входные данные x, они могут быть массивами Numpy или тензорами TensorFlow. Они должны быть согласованы с x (нельзя иметь входные данные Numpy и целевые значения тензоров, или наоборот).
    sample_weight Необязательный массив той же длины, что и x, содержащий веса, применяемые к функции потерь модели для каждого образца. В случае временных данных можно передать двумерный массив с формой (образцы, длина_последовательности), чтобы применить разные веса к каждому шагу во времени каждого образца.
    class_weight Необязательный словарь, сопоставляющий индексы классов (целые числа) с весом (вещественное число), применяемым к функции потерь модели для образцов из этого класса во время обучения. Это может быть полезно, чтобы сообщить модели «обращать больше внимания» на образцы из недопредставленного класса.
    reset_metrics Если True, возвращаемые метрики будут только для этого батча. Если False, метрики будут накапливаться по всем батчам.
    return_dict Если True, результаты потерь и метрик возвращаются в виде словаря, где каждый ключ — имя метрики. Если False, они возвращаются в виде списка.
    Возвращаемое значение
    Скалярная величина функции потерь обучения (если у модели есть один выход и нет метрик) или список скалярных величин (если у модели есть несколько выходов и/или метрики). Атрибут model.metrics_names предоставит вам метки отображения для скалярных выходов.
    Исключения
    RuntimeError Если model.train_on_batch обернут в tf.function.
    ValueError В случае неверных аргументов, переданных пользователем.

    train_step

    Просмотреть исходный код

    train_step(
        data
    )
    

    Логика для одной итерации обучения.

    Этот метод может быть переопределён для поддержки пользовательской логики обучения. Этот метод вызывается методом Model.make_train_function.

    Этот метод должен содержать математическую логику для одной итерации обучения. Обычно это включает в себя прямой проход, вычисление функции потерь, обратное распространение и обновление метрик.

    Детали конфигурации того, *как* эта логика выполняется (например, настройки tf.function и tf.distribute.Strategy), должны быть оставлены методу Model.make_train_function, который также может быть переопределён.

    Аргументы
    data Вложенная структура Tensors.
    Возвращаемое значение
    Объект dict содержащий значения, которые будут переданы в tf.keras.callbacks.CallbackList.on_train_batch_end. Как правило, возвращаются значения метрик Model. Пример: {'loss': 0.2, 'accuracy': 0.7}.

    © 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/Sequential

    Spec-Zone.ru

    Настройки Оффлайн Что нового Помощь О нас
    Spec-Zone .ru
    спецификации, руководства, описания, API