tf.keras.Sequential
Sequential объединяет линейную последовательность слоев в Model.
Наследуется от: Model, Layer, Operation
tf.keras.Sequential(
layers=None, trainable=True, name=None
)
Используется в ноутбуках
| Используется в руководстве | Используется в учебниках |
|---|---|
Примеры:
model = keras.Sequential() model.add(keras.Input(shape=(16,))) model.add(keras.layers.Dense(8)) # Note that you can also omit the initial `Input`. # 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 = keras.Sequential() model.add(keras.layers.Dense(8)) model.add(keras.layers.Dense(4)) # model.weights not created yet # Whereas if you specify an `Input`, the model gets built # continuously as you are adding layers: model = keras.Sequential() model.add(keras.Input(shape=(16,))) model.add(keras.layers.Dense(8)) len(model.weights) # Returns "2" # 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 = keras.Sequential() model.add(keras.layers.Dense(8)) model.add(keras.layers.Dense(4)) model.build((None, 16)) len(model.weights) # Returns "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 = keras.Sequential() model.add(keras.layers.Dense(8)) model.add(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)
| Атрибуты | |
|---|---|
compiled_metrics | |
distribute_reduction_method | |
distribute_strategy | |
input | Извлекает тензор(ы) входных данных символической операции. Возвращает только тензор(ы), соответствующий первому вызову операции. |
input_shape | |
inputs | |
jit_compile | |
layers | |
metrics_names | |
output | Извлекает тензор(ы) выходных данных слоя. Возвращает только тензор(ы), соответствующий первому вызову операции. |
output_shape | |
outputs | |
run_eagerly | |
Методы
add
add(
layer, rebuild=True
)
Добавляет экземпляр слоя поверх стека слоев.
| Аргументы | |
|---|---|
layer | экземпляр слоя. |
compile
compile(
optimizer='rmsprop',
loss=None,
loss_weights=None,
metrics=None,
weighted_metrics=None,
run_eagerly=False,
steps_per_execution=1,
jit_compile='auto',
auto_scale_loss=True
)
Настраивает модель для обучения.
Пример:
model.compile(
optimizer=keras.optimizers.Adam(learning_rate=1e-3),
loss=keras.losses.BinaryCrossentropy(),
metrics=[
keras.metrics.BinaryAccuracy(),
keras.metrics.FalseNegatives(),
],
)
| Аргументы | |
|---|---|
optimizer | Строка (название оптимизатора) или экземпляр оптимизатора. См. keras.optimizers. |
loss | Функция потерь. Может быть строкой (название функции потерь) или экземпляром keras.losses.Loss. См. keras.losses. Функция потерь — это любая вызываемая функция с сигнатурой loss = fn(y_true, y_pred), где y_true — значения истинного результата, а y_pred — предсказания модели. y_true должна иметь форму (batch_size, d0, .. dN) (за исключением случаев с функциями потерь со разреженными данными, такими как sparse categorical crossentropy, которая ожидает целочисленные массивы формы (batch_size, d0, .. dN-1)). y_pred должна иметь форму (batch_size, d0, .. dN). Функция потерь должна возвращать тензор с плавающей точкой. |
loss_weights | Необязательный список или словарь, указывающий скалярные коэффициенты (вещественные числа Python) для взвешивания вкладов потерь различных выходных данных модели. Значение потери, которое будет минимизироваться моделью, будет представлять собой взвешенную сумму всех отдельных потерь, взвешенных по коэффициентам loss_weights. Если это список, ожидается взаимно однозначное соответствие с выходами модели. Если это словарь, ожидается, что он будет сопоставлять имена выходных данных (строки) со скалярными коэффициентами. |
metrics | Список метрик, которые будут оцениваться моделью во время обучения и тестирования. Каждая из них может быть строкой (название встроенной функции), функцией или экземпляром keras.metrics.Metric. См. keras.metrics. Обычно используется metrics=['accuracy']. Функция — это любая вызываемая функция с сигнатурой result = fn(y_true, _pred). Чтобы указать разные метрики для различных выходов модели с несколькими выходами, можно также передать словарь, такой как metrics={'a':'accuracy', 'b':['accuracy', 'mse']}. Также можно передать список для указания метрики или списка метрик для каждого выхода, например, metrics=[['accuracy'], ['accuracy', 'mse']] или metrics=['accuracy', ['accuracy', 'mse']]. Когда передаются строки 'accuracy' или 'acc', мы преобразуем их в одну из keras.metrics.BinaryAccuracy, keras.metrics.CategoricalAccuracy, keras.metrics.SparseCategoricalAccuracy в зависимости от форм целевых значений и выходных данных модели. Аналогичное преобразование выполняется для строк "crossentropy" и "ce". Метрики, передаваемые здесь, оцениваются без взвешивания выборок; если вы хотите применить взвешивание выборок, вы можете указать свои метрики через аргумент weighted_metrics. |
weighted_metrics | Список метрик, которые будут оцениваться и взвешиваться по sample_weight или class_weight во время обучения и тестирования. |
run_eagerly | Булево значение. Если True, прямой проход этой модели никогда не будет компилироваться. Рекомендуется оставлять это значение как False во время обучения (для лучшей производительности) и устанавливать его в True при отладке. |
steps_per_execution | Целое число. Количество пакетов, запускаемых во время каждого вызова единственной скомпилированной функции. Запуск нескольких пакетов внутри одного вызова скомпилированной функции может значительно улучшить производительность на TPUs или для небольших моделей с большой нагрузкой на Python. При каждом выполнении будет выполняться как максимум один полный эпох. Если передано число, большее, чем размер эпохи, выполнение будет урезано до размера эпохи. Обратите внимание, что если steps_per_execution установлено в N, методы Callback.on_batch_begin и Callback.on_batch_end будут вызываться только через каждые N пакетов (т. е. перед/после каждого вызова скомпилированной функции). Не поддерживается с PyTorch-бекендом. |
jit_compile | Булево значение или "auto". Использовать ли XLA-компиляцию при компиляции модели. Для бэкэндов jax и tensorflow, jit_compile="auto" включает XLA-компиляцию, если модель её поддерживает, и отключает её в противном случае. Для бэкэнда torch, "auto" по умолчанию будет использовать жадный режим, а jit_compile=True будет работать с torch.compile с бэкэндом "inductor". |
auto_scale_loss | Булево значение. Если True и политика типа модели — "mixed_float16", переданный оптимизатор будет автоматически обернут в LossScaleOptimizer, который будет динамически масштабировать потерю, чтобы предотвратить переполнение. |
compile_from_config
compile_from_config(
config
)
Компилирует модель с информацией, заданной в конфигурации.
Этот метод использует информацию в конфигурации (оптимизатор, функция потерь, метрики и т. д.) для компиляции модели.
| Аргументы | |
|---|---|
config | Словарь, содержащий информацию для компиляции модели. |
compiled_loss
compiled_loss(
y, y_pred, sample_weight=None, regularization_losses=None
)
compute_loss
compute_loss(
x=None, y=None, y_pred=None, sample_weight=None
)
Вычисляет общую потерю, проверяет её и возвращает.
Подклассы могут по желанию переопределить этот метод, чтобы предоставить пользовательскую логику вычисления потерь.
Пример:
class MyModel(Model):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.loss_tracker = metrics.Mean(name='loss')
def compute_loss(self, x, y, y_pred, sample_weight):
loss = ops.means((y_pred - y) ** 2)
loss += ops.sum(self.losses)
self.loss_tracker.update_state(loss)
return loss
def reset_metrics(self):
self.loss_tracker.reset_state()
@property
def metrics(self):
return [self.loss_tracker]
inputs = layers.Input(shape=(10,), name='my_input')
outputs = layers.Dense(10)(inputs)
model = MyModel(inputs, outputs)
model.add_loss(ops.sum(outputs))
optimizer = SGD()
model.compile(optimizer, loss='mse', steps_per_execution=10)
dataset = ...
model.fit(dataset, epochs=2, steps_per_epoch=10)
print(f"Custom loss: {model.loss_tracker.result()}")
| Аргументы | |
|---|---|
x | Входные данные. |
y | Целевые данные. |
y_pred | Предсказания, возвращаемые моделью (результат model(x)) |
sample_weight | Веса выборок для взвешивания функции потерь. |
| Возвращаемое значение | |
|---|---|
Общая потеря в виде скалярного тензора или None, если результаты потери отсутствуют (что происходит при вызове Model.test_step). |
compute_metrics
compute_metrics(
x, y, y_pred, sample_weight=None
)
Обновляет состояния метрик и собирает все метрики для возврата.
Подклассы могут по желанию переопределить этот метод, чтобы предоставить пользовательскую логику обновления и сбора метрик.
Пример:
class MyModel(Sequential):
def compute_metrics(self, x, y, y_pred, sample_weight):
# This super call updates `self.compiled_metrics` and returns
# results for all metrics listed in `self.metrics`.
metric_results = super().compute_metrics(
x, y, y_pred, sample_weight)
# Note that `self.custom_metric` is not listed
# in `self.metrics`.
self.custom_metric.update_state(x, y, y_pred, sample_weight)
metric_results['metric_name'] = self.custom_metric.result()
return metric_results
| Аргументы | |
|---|---|
x | Входные данные. |
y | Целевые данные. |
y_pred | Предсказания, возвращаемые моделью (выход model.call(x)). |
sample_weight | Веса выборок для взвешивания функции потерь. |
| Возвращаемое значение | |
|---|---|
Объект dict, содержащий значения, которые будут переданы keras.callbacks.CallbackList.on_train_batch_end(). Обычно возвращаются значения метрик, перечисленных в self.metrics. | |
Example | {'loss': 0.2, 'accuracy': 0.7}. |
evaluate
evaluate(
x=None,
y=None,
batch_size=None,
verbose='auto',
sample_weight=None,
steps=None,
callbacks=None,
return_dict=False,
**kwargs
)
Возвращает значение потерь и значения метрик для модели в режиме тестирования.
Вычисления выполняются по пакетам (см. аргумент batch_size).
| Аргументы | |
|---|---|
x | Данные для входных данных. Это может быть:
|
y | Данные целевых значений. Как и входные данные x, это могут быть массивы NumPy или тензоры, поддерживаемые бэкендом. Если x представляет собой объект tf.data.Dataset или keras.utils.PyDataset, y не нужно указывать (поскольку целевые значения будут получены из итератора/набора данных). |
batch_size | Целое число или None. Количество образцов на пакет вычислений. Если не указано, batch_size будет по умолчанию 32. Не указывайте batch_size, если ваши данные представлены в виде набора данных, генераторов или объектов keras.utils.PyDataset (поскольку они генерируют пакеты). |
verbose | Режим отображения, принимающий значения 0, 1, или 2. 0 = без отображения, 1 = полоса прогресса, 2 = строка. "auto" становится 1 в большинстве случаев. Обратите внимание, что полоса прогресса не особенно полезна при записи в файл, поэтому verbose=2 рекомендуется, когда программа не работает интерактивно (например, в производственной среде). По умолчанию "auto". |
sample_weight | Необязательный массив NumPy весов для тестовых образцов, используемый для взвешивания функции потерь. Вы можете передать плоский (одномерный) массив NumPy с той же длиной, что и входные образцы (1:1 соответствие между весами и образцами), или, в случае временных данных, вы можете передать двумерный массив с формой (samples, sequence_length), чтобы применить разные веса к каждому шагу времени каждого образца. Этот аргумент не поддерживается, когда x является набором данных, вместо этого передайте веса образцов как третий элемент x. |
steps | Целое число или None. Общее количество шагов (пакетов образцов) перед объявлением раунда оценки завершенным. Игнорируется с использованием значения по умолчанию None. Если x представляет собой tf.data.Dataset и steps имеет значение None, оценка будет выполняться до тех пор, пока набор данных не будет исчерпан. |
callbacks | Список экземпляров keras.callbacks.Callback. Список колбэков, которые необходимо применить во время оценки. |
return_dict | Если True, результаты потерь и метрик возвращаются как словарь, где каждый ключ — имя метрики. Если False, они возвращаются как список. |
| Возвращаемое значение | |
|---|---|
Скалярная потеря по тесту (если у модели есть один выход и нет метрик) или список скаляров (если у модели несколько выходов и/или метрик). Атрибут model.metrics_names предоставит вам метки отображения для скалярных выходов. |
export
export(
filepath, format='tf_saved_model'
)
Создает артефакт TF SavedModel для вывода.
Примечание: В настоящее время это можно использовать только с бэкендами TensorFlow или JAX.
Этот метод позволяет экспортировать модель в легкий артефакт SavedModel, содержащий только этап прямого прохода модели (ее метод call()) и который может быть использован, например, с TF-Serving. Этап прямого прохода зарегистрирован под именем serve() (см. пример ниже).
Исходный код модели (включая любые пользовательские слои, которые вы могли использовать) больше не нужен для загрузки артефакта — он полностью автономный.
| Аргументы | |
|---|---|
filepath | str или pathlib.Path объект. Путь для сохранения артефакта. |
Пример:
# Create the artifact
model.export("path/to/location")
# Later, in a different process / environment...
reloaded_artifact = tf.saved_model.load("path/to/location")
predictions = reloaded_artifact.serve(input_data)
Если вы хотите настроить свои конечные точки обслуживания, вы можете использовать более низкий уровень keras.export.ExportArchive класс. Метод export() использует ExportArchive внутри.
fit
fit(
x=None,
y=None,
batch_size=None,
epochs=1,
verbose='auto',
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
)
Обучает модель для заданного количества эпох (итераций набора данных).
| Аргументы | |
|---|---|
x | Данные для входных данных. Это может быть:
|
y | Данные целевой переменной. Как и входные данные x, они могут быть массивами NumPy или тензорами, созданными на основе бэкенда. Если x представляет собой набор данных, генератор или экземпляр keras.utils.PyDataset, то y не следует указывать (поскольку целевые значения будут получены из x). |
batch_size | Целое число или None. Количество образцов на обновление градиента. Если не указано, batch_size будет по умолчанию равно 32. Не указывайте batch_size, если ваши данные представлены в виде наборов данных, генераторов или экземпляров keras.utils.PyDataset (поскольку они генерируют пакеты). |
epochs | Целое число. Количество эпох для обучения модели. Эпоха — это итерация по всему набору x и данных y (если флаг steps_per_epoch установлен не на None). Обратите внимание, что в сочетании с initial_epoch, epochs следует понимать как "конечную эпоху". Модель обучается не за указанное количество итераций, заданных epochs, а только до достижения эпохи с индексом epochs. |
verbose | "auto", 0, 1 или 2. Режим отображения. 0 = без вывода, 1 = полоска прогресса, 2 = одна строка на эпоху. "auto" переходит к 1 в большинстве случаев. Обратите внимание, что полоска прогресса не особенно полезна при записи в файл, поэтому verbose=2 рекомендуется, когда вы не работаете интерактивно (например, в производственной среде). По умолчанию "auto". |
callbacks | Список экземпляров keras.callbacks.Callback. Список колбеков, которые применяются во время обучения. См. keras.callbacks. Обратите внимание, что колбеки keras.callbacks.ProgbarLogger и keras.callbacks.History создаются автоматически и не нужно передавать их в model.fit(). keras.callbacks.ProgbarLogger создается или нет, в зависимости от аргумента verbose в model.fit(). |
validation_split | Вещественное число от 0 до 1. Доля обучающих данных, которая будет использована как данные для валидации. Модель отложит эту долю обучающих данных, не будет обучаться на них и будет оценивать потерю и любые метрики модели на этих данных в конце каждой эпохи. Данные валидации выбираются из последних образцов в x и y данных, предоставленных до перемешивания. Этот аргумент не поддерживается, когда x представляет собой набор данных, генератор или экземпляр keras.utils.PyDataset. Если оба validation_data и validation_split предоставлены, то validation_data переопределит validation_split. |
validation_data | Данные, на которых оцениваются потеря и любые метрики модели в конце каждой эпохи. Модель не будет обучаться на этих данных. Таким образом, обратите внимание, что потери валидации данных, предоставленных с помощью validation_split или validation_data, не подвергаются влиянию регуляризующих слоев, таких как шум и dropout. validation_data переопределит validation_split. Это может быть: (x_val, y_val) массивов NumPy или тензоров.(x_val, y_val, val_sample_weights) массивов NumPy.tf.data.Dataset.keras.utils.PyDataset, возвращающий (inputs, targets) или (inputs, targets, sample_weights). |
shuffle | Булево значение, указывающее, нужно ли перемешивать обучающие данные перед каждой эпохой. Этот аргумент игнорируется, когда x представляет собой генератор или tf.data.Dataset. |
class_weight | Необязательный словарь, сопоставляющий индексы классов (целые числа) с весом (вещественное число), используемый для взвешивания функции потерь (только во время обучения). Это может быть полезно для того, чтобы модель "уделяла больше внимания" образцам из недостаточно представленных классов. Когда class_weight указан, и целевые значения имеют ранг 2 или выше, либо y необходимо закодировать в виде one-hot, либо для разряженных меток классов необходимо включить явное конечное измерение 1. |
sample_weight | Необязательный массив NumPy весов для обучающих образцов, используемый для взвешивания функции потерь (только во время обучения). Вы можете передать плоский (1D) массив NumPy с такой же длиной, что и входные образцы (1:1 соответствие между весами и образцами), или, в случае временных данных, вы можете передать 2D-массив с формой (samples, sequence_length), чтобы применить разный вес к каждому временнóму шагу каждого образца. Этот аргумент не поддерживается, когда x является набором данных, генератором или экземпляром keras.utils.PyDataset, вместо этого передайте sample_weights в качестве третьего элемента x. Обратите внимание, что взвешивание образцов не применяется к метрикам, указанным через аргумент metrics в compile(). Для применения взвешивания образцов к вашим метрикам вы можете указать их через weighted_metrics в compile(). |
initial_epoch | Целое число. Эпоха, с которой нужно начать обучение (полезно для возобновления предыдущего обучения). |
steps_per_epoch | Целое число или None. Общее количество шагов (пакетов образцов) перед объявлением завершения одной эпохи и началом следующей эпохи. При обучении с входными тензорами, такими как тензоры нативного бэкенда, значение None по умолчанию равно количеству образцов в наборе данных, деленному на размер пакета, или 1, если это нельзя определить. Если x представляет собой tf.data.Dataset, а steps_per_epoch равно None, то эпоха будет выполняться до тех пор, пока входной набор данных не будет исчерпан. При передаче бесконечно повторяющегося набора данных, необходимо указать аргумент steps_per_epoch. Если steps_per_epoch=-1, обучение будет выполняться бесконечно с бесконечно повторяющимся набором данных. |
validation_steps | Актуально только если предоставлены данные валидации. Общее количество шагов (пакетов образцов), которые необходимо выполнить, прежде чем остановиться при выполнении валидации в конце каждой эпохи. Если validation_steps равно None, валидация будет выполняться до тех пор, пока набор данных validation_data не будет исчерпан. В случае бесконечно повторяющегося набора данных, он будет выполняться бесконечно. Если validation_steps указан и будет обработан только часть набора данных, оценка будет начинаться с начала набора данных в каждой эпохе. Это гарантирует, что каждый раз используются одни и те же образцы для валидации. |
validation_batch_size | Целое число или None. Количество образцов в пакет для валидации. Если не указано, будет по умолчанию равно batch_size. Не указывайте validation_batch_size, если ваши данные представляют собой наборы данных или экземпляры keras.utils.PyDataset (так как они генерируют пакеты). |
validation_freq | Актуально только если предоставлены данные валидации. Указывает, через сколько эпох обучения выполнять новую валидацию, например, validation_freq=2 выполняет валидацию каждую 2 эпоху. |
Поведение распаковки для итерационных входных данных: Общим шаблоном является передача объекта итератора, такого как tf.data.Dataset или keras.utils.PyDataset в fit(), который фактически возвращает не только функции (x), но и необязательно целевые значения (y) и весовые коэффициенты образцов (sample_weight). Keras требует, чтобы вывод таких итераторов был однозначным. Итератор должен возвращать кортеж длиной 1, 2 или 3, где необязательные второй и третий элементы будут использованы для y и sample_weight соответственно. Любой другой тип будет обернут в кортеж длиной 1, эффективно обрабатывая все как x. При передаче словарей они должны все еще соответствовать структуре кортежа верхнего уровня, например, ({"x0": x0, "x1": x1}, y). Keras не будет пытаться отделить функции, целевые значения и весовые коэффициенты от ключей одного словаря. Примечательно, что недопустимый тип данных — это namedtuple. Причина в том, что он ведет себя как упорядоченный тип данных (кортеж) и тип данных сопоставления (словарь). Таким образом, при указании именованного кортежа вида: namedtuple("example_tuple", ["y", "x"]) неясно, следует ли изменять порядок элементов при интерпретации значения. Еще хуже кортеж вида: namedtuple("other_tuple", ["x", "y", "z"]), где неясно, должен ли кортеж быть распакован в x, y и sample_weight или передан как один элемент в x.
| Возвращаемое значение | |
|---|---|
Объект History. Его атрибут History.history — это запись значений потерь обучения и значений метрик на последовательных эпохах, а также значений потерь валидации и значений метрик валидации (при необходимости). |
from_config
@classmethod
from_config(
config, custom_objects=None
)
Создает слой из его конфигурации.
Этот метод — обратный метод get_config, позволяющий восстановить тот же слой из словаря конфигурации. Он не обрабатывает соединение слоев (это обрабатывает сеть), а также веса (это обрабатывает set_weights).
| Аргументы | |
|---|---|
config | Словарь Python, как правило, результат выполнения get_config. |
| Возвращает | |
|---|---|
| Экземпляр слоя. |
get_compile_config
get_compile_config()
Возвращает сериализованную конфигурацию с информацией для компиляции модели.
Этот метод возвращает словарь конфигурации, содержащий всю информацию (оптимизатор, функция потерь, метрики и т. д.), с помощью которой была скомпилирована модель.
| Возвращает | |
|---|---|
| Словарь, содержащий информацию для компиляции модели. |
get_layer
get_layer(
name=None, index=None
)
Получает слой на основе имени (уникального) или индекса.
Если name и index оба предоставлены, index будет иметь приоритет. Индексы основаны на порядке горизонтального обхода графа (снизу вверх).
| Аргументы | |
|---|---|
name | Строка, имя слоя. |
index | Целое число, индекс слоя. |
| Возвращает | |
|---|---|
| Экземпляр слоя. |
get_metrics_result
get_metrics_result()
Возвращает значения метрик модели в виде словаря.
Если любое из значений результатов метрики является словарем (содержащим несколько метрик), каждый из них добавляется в словарь верхнего уровня, возвращаемый этим методом.
| Возвращает | |
|---|---|
Словарь, содержащий значения метрик, перечисленных в self.metrics. | |
Example | {'loss': 0.2, 'accuracy': 0.7}. |
load_weights
load_weights(
filepath, skip_mismatch=False, **kwargs
)
Загружает веса из файла, сохранённого с помощью save_weights().
Веса загружаются на основе топологии сети. Это означает, что архитектура должна быть такой же, как при сохранении весов. Обратите внимание, что слои, у которых нет весов, не учитываются в топологическом порядке, поэтому добавление или удаление слоёв допустимо, если у них нет весов.
Частичная загрузка весов
Если вы изменили свою модель, например, добавив новый слой (с весами) или изменив форму весов слоя, вы можете выбрать пропуск ошибок и продолжить загрузку, установив skip_mismatch=True. В этом случае любой слой с несовпадающими весами будет пропущен. Для каждого пропущенного слоя будет выведено предупреждение.
| Аргументы | |
|---|---|
filepath | Строка, путь к файлу весов для загрузки. Он может быть файлом .weights.h5 или устаревшим файлом весов .h5. |
skip_mismatch | Булево значение, определяющее, следует ли пропускать загрузку слоев, где есть несовпадение в количестве весов или форме весов. |
loss
loss(
y, y_pred, sample_weight=None
)
make_predict_function
make_predict_function(
force=False
)
make_test_function
make_test_function(
force=False
)
make_train_function
make_train_function(
force=False
)
pop
pop(
rebuild=True
)
Удаляет последний слой в модели.
predict
predict(
x, batch_size=None, verbose='auto', steps=None, callbacks=None
)
Генерирует предсказания для входных выборок.
Вычисление выполняется по частям. Этот метод предназначен для пакетной обработки большого количества входных данных. Он не предназначен для использования внутри циклов, которые итеративно обрабатывают небольшие объёмы данных.
Для небольшого количества входных данных, которые помещаются в одну партию, используйте напрямую __call__() для более быстрого выполнения, например, model(x) или model(x, training=False), если у вас есть слои, такие как BatchNormalization, которые ведут себя по-разному во время инференции.
Примечание: См. эту запись FAQ для получения дополнительной информации о разнице между методамиModelpredict()и__call__().
| Аргументы | |
|---|---|
x | Входные образцы. Это может быть:
|
batch_size | Целое число или None. Количество выборок в пакете. Если не указано, batch_size будет по умолчанию равно 32. Не указывайте batch_size, если ваши данные находятся в виде набора данных, генераторов или объектов keras.utils.PyDataset (поскольку они генерируют пакеты). |
verbose | Режим отображения, 0, 1 или 2. 0 = без вывода, 1 = полоса прогресса, 2 = отдельная строка. "auto" становится 1 для большинства случаев. Обратите внимание, что полоса прогресса не очень полезна при выводе в файл, поэтому verbose=2 рекомендуется, когда вы не работаете интерактивно (например, в производственной среде). По умолчанию "auto". |
steps | Общее количество шагов (пакетов выборок) перед объявлением завершения раунда предсказания. Игнорируется при значении по умолчанию None. Если x является объектом tf.data.Dataset и steps равно None, predict() будет выполняться до тех пор, пока входной набор данных не будет исчерпан. |
callbacks | Список объектов keras.callbacks.Callback. Список обратных вызовов, которые нужно применить во время предсказания. |
| Возвращает | |
|---|---|
| Массив NumPy (массивы) предсказаний. |
predict_on_batch
predict_on_batch(
x
)
Возвращает предсказания для одного пакета выборок.
| Аргументы | |
|---|---|
x | Входные данные. Должно быть массивоподобным. |
| Возвращает | |
|---|---|
| Массив NumPy (массивы) предсказаний. |
predict_step
predict_step(
data
)
reset_metrics
reset_metrics()
save
save(
filepath, overwrite=True, **kwargs
)
Сохраняет модель как файл .keras.
| Аргументы | |
|---|---|
filepath | str или pathlib.Path объект. Путь для сохранения модели. Должен заканчиваться на .keras. |
overwrite | Нужно ли перезаписывать существующую модель в целевом расположении или вместо этого запросить у пользователя через интерактивный запрос. |
save_format | Аргумент save_format устарел в Keras 3. Формат для использования, как строка. В настоящее время поддерживается только формат "keras". |
Пример:
model = keras.Sequential(
[
keras.layers.Dense(5, input_shape=(3,)),
keras.layers.Softmax(),
],
)
model.save("model.keras")
loaded_model = keras.saving.load_model("model.keras")
x = keras.random.uniform((10, 3))
assert np.allclose(model.predict(x), loaded_model.predict(x))
Обратите внимание, что model.save() является псевдонимом для keras.saving.save_model().
Сохранённый файл .keras содержит:
- Конфигурацию модели (архитектура)
- Веса модели
- Состояние оптимизатора модели (если есть)
Таким образом, модели можно повторно создать в точно таком же состоянии.
save_weights
save_weights(
filepath, overwrite=True
)
Сохраняет все весовые коэффициенты слоя в файл .weights.h5.
| Аргументы | |
|---|---|
filepath | str или pathlib.Path объект. Путь для сохранения модели. Должен заканчиваться на .weights.h5. |
overwrite | Нужно ли перезаписывать существующую модель в целевом расположении или вместо этого запросить у пользователя через интерактивный запрос. |
stateless_compute_loss
stateless_compute_loss(
trainable_variables,
non_trainable_variables,
metrics_variables,
x=None,
y=None,
y_pred=None,
sample_weight=None
)
summary
summary(
line_length=None,
positions=None,
print_fn=None,
expand_nested=False,
show_trainable=False,
layer_range=None
)
Выводит строковый вывод сети.
| Аргументы | |
|---|---|
line_length | Общая длина выводимых строк (например, установите это значение для адаптации отображения к различным размерам окон терминала). |
positions | Относительные или абсолютные позиции элементов логов в каждой строке. Если не указано, становится [0.3, 0.6, 0.70, 1.]. По умолчанию None. |
print_fn | Функция вывода, которую нужно использовать. По умолчанию выводит в stdout. Если stdout не работает в вашей среде, измените на print. Она будет вызываться для каждой строки вывода. Вы можете установить её на пользовательскую функцию для захвата строкового вывода. |
expand_nested | Нужно ли расширять вложенные модели. По умолчанию False. |
show_trainable | Показывать, является ли слой обучаемым. По умолчанию False. |
layer_range | список или кортеж из 2 строк, который является именем начального слоя и конечного слоя (оба включительно), указывающий диапазон слоёв для вывода в сводке. Он также принимает шаблоны регулярных выражений вместо точных имён. В этом случае, начальный предикат будет первым элементом, которому он соответствует, для layer_range[0], а конечный предикат будет последним элементом, которому он соответствует, для layer_range[1]. По умолчанию None, который учитывает все слои модели. |
| Исключения | |
|---|---|
ValueError | если summary() вызвана до построения модели. |
symbolic_call
symbolic_call(
*args, **kwargs
)
test_on_batch
Проверяет модель на одном батче выборок.
| Аргументы | |
|---|---|
x | Данные для входных данных. Должно быть массивоподобным. |
y | Данные для целевых значений. Должно быть массивоподобным. |
sample_weight | Необязательный массив той же длины, что и x, содержащий веса, применяемые к потере модели для каждой выборки. В случае временных данных вы можете передать двумерный массив с формой (samples, sequence_length), чтобы применить разные веса к каждому шагу времени каждой выборки. |
return_dict | Если True, результаты потери и метрики возвращаются в виде словаря, где каждый ключ — имя метрики. Если False, они возвращаются в виде списка. |
| Возвращаемые значения | |
|---|---|
Скалярное значение потери (если нет метрик и return_dict=False), список значений потерь и метрик (если есть метрики и return_dict=False) или словарь значений метрик и потерь (если return_dict=True). |
test_step
test_step(
data
)
to_json
to_json(
**kwargs
)
Возвращает строку JSON, содержащую конфигурацию сети.
Чтобы загрузить сеть из сохранённого файла JSON, используйте keras.models.model_from_json(json_string, custom_objects={...}).
| Аргументы | |
|---|---|
**kwargs | Дополнительные ключевые аргументы, которые нужно передать в json.dumps(). |
| Возвращаемые значения | |
|---|---|
| Строка JSON. |
train_on_batch
train_on_batch(
x, y=None, sample_weight=None, class_weight=None, return_dict=False
)
Выполняет одно обновление градиента на одном батче данных.
| Аргументы | |
|---|---|
x | Данные для входных данных. Должно быть массивоподобным. |
y | Данные для целевых значений. Должно быть массивоподобным. |
sample_weight | Необязательный массив той же длины, что и x, содержащий веса, применяемые к потере модели для каждой выборки. В случае временных данных вы можете передать двумерный массив с формой (samples, sequence_length), чтобы применить разные веса к каждому шагу времени каждой выборки. |
class_weight | Необязательный словарь, сопоставляющий индексы классов (целые числа) с весом (вещественное число), который нужно применить к потере модели для выборок из этого класса во время обучения. Это может быть полезно, чтобы сказать модели «уделить больше внимания» выборкам из недостаточно представленного класса. Когда class_weight указан, и целевые значения имеют ранг 2 или выше, либо y должны быть закодированы с помощью одного горячего кода, либо для меток разреженных классов необходимо явно указать конечную размерность 1. |
return_dict | Если True, результаты потери и метрики возвращаются в виде словаря, где каждый ключ — имя метрики. Если False, они возвращаются в виде списка. |
| Возвращаемые значения | |
|---|---|
Скалярное значение потери (если нет метрик и return_dict=False), список значений потерь и метрик (если есть метрики и return_dict=False) или словарь значений метрик и потерь (если return_dict=True). |
train_step
train_step(
data
)
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/python/tf/keras/Sequential