Spec-Zone.ru › TensorFlow 2.9

tf.keras.experimental.WideDeepModel

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

Модель Широкая и Глубокая для задач регрессии и классификации.

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

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

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

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

tf.compat.v1.keras.experimental.WideDeepModel, tf.compat.v1.keras.models.WideDeepModel

tf.keras.experimental.WideDeepModel(
    linear_model, dnn_model, activation=None, **kwargs
)

Эта модель совместно обучает линейную и глубокую нейронную сеть.

Пример:

linear_model = LinearModel()
dnn_model = keras.Sequential([keras.layers.Dense(units=64),
                             keras.layers.Dense(units=1)])
combined_model = WideDeepModel(linear_model, dnn_model)
combined_model.compile(optimizer=['sgd', 'adam'], 'mse', ['mse'])
# define dnn_inputs and linear_inputs as separate numpy arrays or
# a single numpy array if dnn_inputs is same as linear_inputs.
combined_model.fit([linear_inputs, dnn_inputs], y, epochs)
# or define a single `tf.data.Dataset` that contains a single tensor or
# separate tensors for dnn_inputs and linear_inputs.
dataset = tf.data.Dataset.from_tensors(([linear_inputs, dnn_inputs], y))
combined_model.fit(dataset, epochs)

Как линейная, так и глубокая нейронная сеть могут быть предварительно скомпилированы и обучены по отдельности перед совместным обучением:

Пример:

linear_model = LinearModel()
linear_model.compile('adagrad', 'mse')
linear_model.fit(linear_inputs, y, epochs)
dnn_model = keras.Sequential([keras.layers.Dense(units=1)])
dnn_model.compile('rmsprop', 'mse')
dnn_model.fit(dnn_inputs, y, epochs)
combined_model = WideDeepModel(linear_model, dnn_model)
combined_model.compile(optimizer=['sgd', 'adam'], 'mse', ['mse'])
combined_model.fit([linear_inputs, dnn_inputs], y, epochs)
Аргументы
linear_model предварительно созданная модель LinearModel, её вывод должен соответствовать выводу модели dnn.
dnn_model tf.keras.Model, её вывод должен соответствовать выводу линейной модели.
activation Функция активации. Установите её в None, чтобы сохранить линейную активацию.
**kwargs Параметры, передаваемые в BaseLayer.init. Допустимые параметры включают name.
Атрибуты
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
)

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

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

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

    Примечание: См. эту запись в разделе вопросов и ответов для получения более подробной информации о различиях между методами 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 или руководство по сериализации и сохранению Сериализация и сохранение для получения подробной информации.

    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. Точки восстановления, сохранённые с помощью Model.save_weights, должны загружаться с помощью Model.load_weights. Точки восстановления, сохранённые с помощью tf.train.Checkpoint.save, должны восстанавливаться с помощью соответствующей tf.train.Checkpoint.restore. Предпочтительнее использовать tf.train.Checkpoint по сравнению с save_weights для контрольных точек обучения.

    Формат TensorFlow сопоставляет объекты и переменные, начиная с корневого объекта, self для save_weights, и жадно подбирая имена атрибутов. Для Model.save это Model, а для Checkpoint.save это Checkpoint, даже если Checkpoint имеет прикреплённую модель. Это означает, что сохранение tf.keras.Model с помощью save_weights и загрузка в tf.train.Checkpoint с прикреплённой Model (или наоборот) не будут сопоставлять переменные Model. См. руководство по контрольным точкам обучения https://www.tensorflow.org/guide/checkpoint для получения подробной информации о формате 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/experimental/WideDeepModel

    Spec-Zone.ru

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