Spec-Zone.ru › TensorFlow 2.9

tf.keras.Model

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

Model группирует слои в объект с функциями обучения и вывода.

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

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

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

tf.keras.models.Model

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

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

tf.compat.v1.keras.Model, tf.compat.v1.keras.models.Model

tf.keras.Model(
    *args, **kwargs
)
Аргументы
inputs Вход(ы) модели: объект keras.Input или список объектов keras.Input.
outputs Выход(ы) модели. См. пример API функционального программирования ниже.
name Строка, имя модели.

Есть два способа создать экземпляр Model:

1 — С помощью "Функционального API", где вы начинаете с Input, вы цепляете вызовы слоев для указания прямого прохода модели и, наконец, создаете свою модель из входных и выходных данных:

import tensorflow as tf

inputs = tf.keras.Input(shape=(3,))
x = tf.keras.layers.Dense(4, activation=tf.nn.relu)(inputs)
outputs = tf.keras.layers.Dense(5, activation=tf.nn.softmax)(x)
model = tf.keras.Model(inputs=inputs, outputs=outputs)
Примечание: Поддерживаются только словари, списки и кортежи тензоров входных данных. Вложенные входные данные не поддерживаются (например, списки списков или словари словарей).

Модель функционального API также можно создать, используя промежуточные тензоры. Это позволяет быстро извлечь подкомпоненты модели.

Пример:

inputs = keras.Input(shape=(None, None, 3))
processed = keras.layers.RandomCrop(width=32, height=32)(inputs)
conv = keras.layers.Conv2D(filters=2, kernel_size=3)(processed)
pooling = keras.layers.GlobalAveragePooling2D()(conv)
feature = keras.layers.Dense(10)(pooling)

full_model = keras.Model(inputs, feature)
backbone = keras.Model(processed, conv)
activations = keras.Model(conv, feature)

Обратите внимание, что модели backbone и activations не создаются с объектами keras.Input, а с тензорами, которые происходят из объектов keras.Inputs. Под капотом, слои и веса будут совместно использоваться между этими моделями, так что пользователь может обучать full_model, и использовать backbone или activations для извлечения признаков. Входные и выходные данные модели также могут быть вложенными структурами тензоров, и созданные модели — это стандартные модели функционального API, которые поддерживают все существующие API.

2 — Наследуя класс Model: в этом случае вы должны определить свои слои в __init__() и реализовать прямой проход модели в call().

import tensorflow as tf

class MyModel(tf.keras.Model):

  def __init__(self):
    super().__init__()
    self.dense1 = tf.keras.layers.Dense(4, activation=tf.nn.relu)
    self.dense2 = tf.keras.layers.Dense(5, activation=tf.nn.softmax)

  def call(self, inputs):
    x = self.dense1(inputs)
    return self.dense2(x)

model = MyModel()

Если вы наследуете Model, вы можете необязательно иметь аргумент training (логический) в call(), который вы можете использовать для указания различного поведения в процессе обучения и вывода:

import tensorflow as tf

class MyModel(tf.keras.Model):

  def __init__(self):
    super().__init__()
    self.dense1 = tf.keras.layers.Dense(4, activation=tf.nn.relu)
    self.dense2 = tf.keras.layers.Dense(5, activation=tf.nn.softmax)
    self.dropout = tf.keras.layers.Dropout(0.5)

  def call(self, inputs, training=False):
    x = self.dense1(inputs)
    if training:
      x = self.dropout(x, training=training)
    return self.dense2(x)

model = MyModel()

После создания модели вы можете настроить модель с потерями и метриками с помощью model.compile(), обучить модель с помощью model.fit(), или использовать модель для предсказания с помощью model.predict().

Атрибуты
distribute_strategy tf.distribute.Strategy, на основе которого была создана эта модель.
layers
metrics_names Возвращает метки отображения модели для всех выходных данных.
Примечание: metrics_names доступны только после того, как keras.Model была обучена/оценена на реальных данных.
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. Ваша модель может работать медленнее, но для вас должно стать проще отлаживать ее, переходя к отдельным вызовам слоев.

По умолчанию мы будем пытаться скомпилировать вашу модель в статическую схему, чтобы обеспечить наилучшую производительность выполнения.

Методы

call

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

call(
    inputs, training=None, mask=None
)

Вызывает модель на новых входных данных и возвращает выходные данные как тензоры.

В данном случае call() просто повторно применяет все операции в графике к новым входным данным (например, строит новую вычислительную схему из предоставленных входных данных).

Примечание: Этот метод не следует вызывать напрямую. Он предназначен только для переопределения при наследовании от tf.keras.Model. Для вызова модели на входе всегда используйте метод __call__(), т.е. model(inputs), который опирается на базовый метод call().
Аргументы
inputs Тензор входных данных или словарь/список/кортеж тензоров входных данных.
training Логическое значение или логический скалярный тензор, указывающий, нужно ли запускать Network в режиме обучения или вывода.
mask Маска или список масок. Маска может быть булевым тензором или None (нет маски). Более подробную информацию см. в руководстве здесь.
Возвращаемое значение
Тензор, если есть один выходной параметр, или список тензоров, если выходных параметров больше одного.

compile

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

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

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

Пример:

model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=1e-3),
              loss=tf.keras.losses.BinaryCrossentropy(),
              metrics=[tf.keras.metrics.BinaryAccuracy(),
                       tf.keras.metrics.FalseNegatives()])
Аргументы
optimizer Строка (название оптимизатора) или экземпляр оптимизатора. См. tf.keras.optimizers.
loss Функция потерь. Может быть строкой (название функции потерь) или экземпляром tf.keras.losses.Loss. См. tf.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 и параметр reduction установлен в None, значение возврата имеет форму (batch_size, d0, .. dN-1), т.е. значения потерь для каждого образца или каждого шага во времени; в противном случае это скаляр. Если модель имеет несколько выходов, вы можете использовать разные функции потерь для каждого выхода, передав словарь или список функций потерь. Значение потерь, которое будет минимизироваться моделью, будет тогда суммой всех отдельных потерь, если не указан параметр loss_weights.
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. Если это список, он должен соответствовать выходам модели один к одному. Если это словарь, ожидается, что он будет сопоставлять имена выходов (строки) с скалярными коэффициентами.
weighted_metrics Список метрик, которые будут оцениваться и взвешиваться sample_weight или class_weight во время обучения и тестирования.
run_eagerly Булево значение. По умолчанию False. Если True, логика этого Model не будет обернута в tf.function. Рекомендуется оставлять это как None, если ваша Model не может выполняться внутри tf.function. run_eagerly=True не поддерживается при использовании tf.distribute.experimental.ParameterServerStrategy.
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).
jit_compile Если True, скомпилировать этап обучения модели с помощью XLA. XLA — это оптимизирующая компилятор для машинного обучения. jit_compile по умолчанию не включен. Этот параметр нельзя включить с run_eagerly=True. Обратите внимание, что jit_compile=True может не работать для всех моделей. Для получения дополнительной информации о поддерживаемых операциях обратитесь к документации XLA. Также ознакомьтесь с известными проблемами XLA для получения дополнительной информации.
**kwargs Аргументы, поддерживаемые только для обратной совместимости.

compute_loss

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

compute_loss(
    x=None, y=None, y_pred=None, sample_weight=None
)

Вычислить общую потерю, проверить её и вернуть.

Подклассы могут необязательно переопределить этот метод, чтобы обеспечить пользовательскую логику вычисления потерь.

Пример:

class MyModel(tf.keras.Model):

  def __init__(self, *args, **kwargs):
    super(MyModel, self).__init__(*args, **kwargs)
    self.loss_tracker = tf.keras.metrics.Mean(name='loss')

  def compute_loss(self, x, y, y_pred, sample_weight):
    loss = tf.reduce_mean(tf.math.squared_difference(y_pred, y))
    loss += tf.add_n(self.losses)
    self.loss_tracker.update_state(loss)
    return loss

  def reset_metrics(self):
    self.loss_tracker.reset_states()

  @property
  def metrics(self):
    return [self.loss_tracker]

tensors = tf.random.uniform((10, 10)), tf.random.uniform((10,))
dataset = tf.data.Dataset.from_tensor_slices(tensors).repeat().batch(1)

inputs = tf.keras.layers.Input(shape=(10,), name='my_input')
outputs = tf.keras.layers.Dense(10)(inputs)
model = MyModel(inputs, outputs)
model.add_loss(tf.reduce_sum(outputs))

optimizer = tf.keras.optimizers.SGD()
model.compile(optimizer, loss='mse', steps_per_execution=10)
model.fit(dataset, epochs=2, steps_per_epoch=10)
print('My custom loss: ', model.loss_tracker.result().numpy())
Аргументы
x Данные входных данных.
y Данные целевой переменной.
y_pred Предсказания, возвращаемые моделью (выход model(x))
sample_weight Веса образцов для взвешивания функции потерь.
Возвращаемое значение
Общая потеря в виде tf.Tensor, или None если результаты потерь отсутствуют (что имеет место при вызове Model.test_step).

compute_metrics

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

compute_metrics(
    x, y, y_pred, sample_weight
)

Обновить состояния метрик и собрать все метрики для возврата.

Подклассы могут необязательно переопределить этот метод, чтобы предоставить пользовательскую логику обновления и сбора метрик.

Пример:

class MyModel(tf.keras.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(MyModel, self).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['custom_metric_name'] = self.custom_metric.result()
    return metric_results
Аргументы
x Данные входных данных.
y Данные целевой переменной.
y_pred Предсказания, возвращаемые моделью (выход model.call(x))
sample_weight Веса образцов для взвешивания функции потерь.
Возвращаемое значение
Объект dict, содержащий значения, которые будут переданы в tf.keras.callbacks.CallbackList.on_train_batch_end(). Обычно возвращаются значения метрик, перечисленных в self.metrics. Пример: {'loss': 0.2, 'accuracy': 0.7}.

evaluate

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

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

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

Вычисление выполняется по пакетам (см. аргумент 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, 2 или 3. 0 = без вывода, 1 = прогресс-бар, 2 = одна строка. "auto" по умолчанию равен 1 для большинства случаев и 2 при использовании с ParameterServerStrategy. Обратите внимание, что прогресс-бар не очень полезен при записи в файл, поэтому рекомендуется использовать verbose=2 при работе не интерактивно (например, в производственной среде).
sample_weight Необязательный массив NumPy весов для тестовых образцов, используемый для взвешивания функции потерь. Вы можете передать плоский (одномерный) массив NumPy с той же длиной, что и входные образцы (1:1 соответствие между весами и образцами), или, в случае временных данных, вы можете передать двумерный массив с формой (samples, sequence_length), чтобы применить разные веса к каждому временного шагу каждого образца. Этот аргумент не поддерживается, когда x является набором данных, вместо этого передайте веса образцов как третий элемент в x.
steps Целое число или None. Общее количество шагов (пакетов образцов) до окончания раунда оценки. Игнорируется со значением по умолчанию None. Если x — это набор данных tf.data, и steps равно None, 'evaluate' будет выполняться до тех пор, пока набор данных не исчерпается. Этот аргумент не поддерживается с входными массивами.
callbacks Список объектов keras.callbacks.Callback. Список колбеков, которые следует применять во время оценки. См. колбеки.
max_queue_size Целое число. Используется только для генераторов или входных данных keras.utils.Sequence. Максимальный размер очереди генератора. Если не указано, max_queue_size по умолчанию будет 10.
workers Целое число. Используется только для генераторов или входных данных keras.utils.Sequence. Максимальное количество процессов для запуска при использовании многопоточности на основе процессов. Если не указано, workers по умолчанию будет 1.
use_multiprocessing Булево значение. Используется только для генераторов или входных данных keras.utils.Sequence. Если True, использовать многопоточность на основе процессов. Если не указано, use_multiprocessing по умолчанию будет False. Обратите внимание, что поскольку эта реализация использует multiprocessing, вы не должны передавать не-picklable аргументы в генератор, так как они не могут быть легко переданы дочерним процессам.
return_dict Если True, результаты потерь и метрик возвращаются как словарь, где каждый ключ — это имя метрики. Если False, они возвращаются как список.
**kwargs В настоящее время не используется.

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

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

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,
    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).
  • A tf.keras.utils.experimental.DatasetCreator, which wraps a callable that takes a single argument of type tf.distribute.InputContext, and returns a tf.data.Dataset. DatasetCreator следует использовать, когда пользователи предпочитают указать логику распределения и фрагментации пакетной обработки для Dataset. См. tf.keras.utils.experimental.DatasetCreator для получения дополнительной информации. Более подробное описание поведения распаковки для типов итераторов (Dataset, генератор, Sequence) приведено ниже. При использовании tf.distribute.experimental.ParameterServerStrategy, только тип DatasetCreator поддерживается для x.
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 предоставленным данным (если флаг steps_per_epoch не установлен на значение отличное от None). Обратите внимание, что в сочетании с initial_epoch, epochs следует понимать как «конечная эпоха». Модель обучается не за количество итераций, заданное epochs, а до достижения эпохи с индексом epochs.
verbose 'auto', 0, 1 или 2. Режим отображения. 0 = без вывода, 1 = полоса прогресса, 2 = одна строка на эпоху. 'auto' по умолчанию устанавливается в 1 для большинства случаев, но в 2 при использовании с ParameterServerStrategy. Обратите внимание, что полоса прогресса не очень полезна при записи в файл, поэтому 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. Колбэки с вызовами на уровне пакетной обработки в настоящее время не поддерживаются с tf.distribute.experimental.ParameterServerStrategy, и пользователям рекомендуется реализовать вызовы на уровне эпохи вместо этого с соответствующим значением steps_per_epoch .
validation_split Вещественное число от 0 до 1. Доля обучающих данных, используемая в качестве проверочных данных. Модель отделит эту долю обучающих данных, не будет обучаться на ней и будет оценивать потерю и любые метрики модели на этих данных в конце каждой эпохи. Проверочные данные выбираются из последних выборок в x и y предоставленных данных, перед перемешиванием. Этот аргумент не поддерживается, когда x является набором данных, генератором или объектом keras.utils.Sequence. Если оба validation_data и validation_split заданы, validation_data переопределит validation_split. validation_split пока не поддерживается с tf.distribute.experimental.ParameterServerStrategy.
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.
  • Набор данных tf.data.Dataset.
  • Генератор Python или keras.utils.Sequence, возвращающий (inputs, targets) или (inputs, targets, sample_weights). validation_data пока не поддерживается с tf.distribute.experimental.ParameterServerStrategy.
shuffle Булево значение (перемешивать ли обучающие данные перед каждой эпохой) или строка ('batch'). Этот аргумент игнорируется, когда x является генератором или объектом tf.data.Dataset. 'batch' — это специальный вариант для решения ограничений данных HDF5; он перемешивает данные в блоках размером с пакет. Не имеет эффекта, если steps_per_epoch не равно None.
class_weight Необязательный словарь, сопоставляющий индексы классов (целые числа) со значением веса (вещественное число), используемым для взвешивания функции потерь (только во время обучения). Это может быть полезно, чтобы указать модели «уделять больше внимания» образцам из недопредставленного класса.
sample_weight Необязательный массив Numpy весов для обучающих выборок, используемый для взвешивания функции потерь (только во время обучения). Вы можете передать плоский (1D) массив 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. Если steps_per_epoch=-1 обучение будет продолжаться бесконечно с бесконечно повторяющимся набором данных. Этот аргумент не поддерживается с входными массивами. При использовании tf.distribute.experimental.ParameterServerStrategy:
  • steps_per_epoch=None не поддерживается.
  • 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.
    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("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 В случае несоответствия между предоставленными входными данными и ожидаемыми моделью или когда входные данные пустые.

    get_layer

    Просмотр исходного кода

    get_layer(
        name=None, index=None
    )
    

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

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

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

    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). Это также может быть путь к SavedModel, сохранённому из model.save.
    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(
        force=False
    )
    

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

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

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

    Эта функция кэшируется при первом вызове Model.predict или Model.predict_on_batch. Кэш очищается при вызове Model.compile. Вы можете пропустить кэш и повторно сгенерировать функцию с помощью force=True.

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

    make_test_function

    Просмотр исходного кода

    make_test_function(
        force=False
    )
    

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

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

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

    Эта функция кэшируется при первом вызове Model.evaluate или Model.test_on_batch. Кэш очищается при вызове Model.compile. Вы можете пропустить кэш и повторно сгенерировать функцию с помощью force=True.

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

    make_train_function

    Просмотр исходного кода

    make_train_function(
        force=False
    )
    

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

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

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

    Эта функция кэшируется при первом вызове Model.fit или Model.train_on_batch. Кэш очищается при вызове Model.compile. Вы можете пропустить кэш и повторно сгенерировать функцию с помощью force=True.

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

    predict

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

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

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

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

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

    Также обратите внимание на тот факт, что тестовая ошибка не зависит от регуляризующих слоёв, таких как шум и отбрасывание.

    Примечание: См. эту запись FAQ для получения более подробной информации о различиях между методами Model predict() и __call__().
    Аргументы
    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 или 2. 0 = без вывода, 1 = полоса прогресса, 2 = одна строка. "auto" по умолчанию равен 1 для большинства случаев и 2 при использовании с ParameterServerStrategy. Обратите внимание, что полоса прогресса не очень полезна при записи в файл, поэтому verbose=2 рекомендуется, когда вы не работаете интерактивно (например, в производственной среде).
    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.
    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_on_batch

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

    predict_on_batch(
        x
    )
    

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

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

    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_spec

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

    save_spec(
        dynamic_batch=True
    )
    

    Возвращает кортеж tf.TensorSpec входных данных вызова как кортеж (args, kwargs).

    Это значение автоматически определяется после первого вызова модели. После этого вы можете использовать его при экспорте модели для обслуживания:

    model = tf.keras.Model(...)
    
    @tf.function
    def serve(*args, **kwargs):
      outputs = model(*args, **kwargs)
      # Apply postprocessing steps, or add additional outputs.
      ...
      return outputs
    
    # arg_specs is `[tf.TensorSpec(...), ...]`. kwarg_specs, in this example, is
    # an empty dict since functional models do not use keyword arguments.
    arg_specs, kwarg_specs = model.save_spec()
    
    model.save(path, signatures={
      'serving_default': serve.get_concrete_function(*arg_specs, **kwarg_specs)
    })
    
    Аргументы
    dynamic_batch Флаг, устанавливающий размеры батчей всех возвращаемых tf.TensorSpec на None. (Обратите внимание, что при определении функциональных или последовательных моделей с tf.keras.Input([...], batch_size=X), размер пакета всегда сохраняется). По умолчанию True.
    Возвращаемое значение
    Если входные данные модели определены, возвращает кортеж (args, kwargs). Все элементы в args и kwargs являются tf.TensorSpec. Если входные данные модели не определены, возвращает None. Входные данные модели автоматически устанавливаются при вызове модели, model.fit, model.evaluate или model.predict.

    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. Checkpoints, сохранённые с помощью Model.save_weights , должны загружаться с помощью Model.load_weights. Checkpoints, сохранённые с помощью 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.

    summary

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

    summary(
        line_length=None,
        positions=None,
        print_fn=None,
        expand_nested=False,
        show_trainable=False
    )
    

    Выводит строковый вывод сети.

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

    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, содержащую конфигурацию сети.

    Примечание: Начиная с TF 2.6, этот метод больше не поддерживается и вызовет RuntimeError.

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

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

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

    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.
    sample_weight Необязательный массив той же длины, что и x, содержащий веса, которые применяются к функции потерь модели для каждого образца. В случае временных данных можно передать двумерный массив с формой (образцы, длина_последовательности), чтобы применить разные веса к каждому временнному шагу каждого образца.
    class_weight Необязательный словарь, сопоставляющий индексы классов (целые числа) с весом (вещественное число), который нужно применить к функции потерь модели для образцов из этого класса во время обучения. Это может быть полезно, чтобы сказать модели «уделять больше внимания» образцам из недопредставленного класса.
    reset_metrics Если True, метрики, возвращаемые, будут только для этой порции. Если False, метрики будут накоплены со всеми порциями.
    return_dict Если True, результаты потерь и метрик возвращаются как словарь, где каждый ключ — имя метрики. Если False, они возвращаются как список.
    Возвращаемое значение
    Скалярная потеря обучения (если у модели есть один выход и нет метрик) или список скаляров (если у модели есть несколько выходов и/или метрик). Атрибут model.metrics_names предоставит вам метки отображения для скалярных выходов.
    Исключения
    RuntimeError Если model.train_on_batch заключён в tf.function.

    train_step

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

    train_step(
        data
    )
    

    Логика одного шага обучения.

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

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

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

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

    © 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/versions/r2.9/api_docs/python/tf/keras/Model

    Spec-Zone.ru

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