Spec-Zone.ru › TensorFlow 2.9

tf.keras.experimental.LinearModel

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

Линейная модель для задач регрессии и классификации.

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

Псевдонимы

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

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

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

tf.keras.experimental.LinearModel(
    units=1,
    activation=None,
    use_bias=True,
    kernel_initializer='zeros',
    bias_initializer='zeros',
    kernel_regularizer=None,
    bias_regularizer=None,
    **kwargs
)

Эта модель аппроксимирует следующую функцию:

\[y = \beta + \sum_{i=1}^{N} w_{i} * x_{i}\]

где \(\beta\) — смещение, а \(w_{i}\) — вес для каждого признака.

Пример:

model = LinearModel()
model.compile(optimizer='sgd', loss='mse')
model.fit(x, y, epochs=epochs)

Эта модель также принимает разреженные числовые входные данные:

Пример:

model = LinearModel()
opt = tf.keras.optimizers.Adam()
loss_fn = tf.keras.losses.MeanSquaredError()
with tf.GradientTape() as tape:
  output = model(sparse_input)
  loss = tf.reduce_mean(loss_fn(target, output))
grads = tape.gradient(loss, model.weights)
opt.apply_gradients(zip(grads, model.weights))
Аргументы
units Положительное целое число, размерность вывода без размера пакета.
activation Функция активации для использования. Если не указано, активация не применяется.
use_bias Нужно ли вычислять смещение/перехват для этой модели. Если установлено в False, смещение/перехват не будет использоваться в расчётах, например, данные уже центрированы.
kernel_initializer Инициализатор для матриц весов kernel.
bias_initializer Инициализатор вектора смещения.
kernel_regularizer Регуляризатор для векторов ядра.
bias_regularizer Регуляризатор для вектора смещения.
**kwargs Параметры, передаваемые в BaseLayer.init.
Атрибуты
distribute_strategy tf.distribute.Strategy, в рамках которого была создана эта модель.
layers
metrics_names Возвращает метки отображения модели для всех выходов.
Примечание: metrics_names доступны только после обучения/оценки модели на реальных данных.
inputs = tf.keras.layers.Input(shape=(3,))
outputs = tf.keras.layers.Dense(2)(inputs)
model = tf.keras.models.Model(inputs=inputs, outputs=outputs)
model.compile(optimizer="Adam", loss="mse", metrics=["mae"])
model.metrics_names
[]
x = np.random.random((2, 3))
y = np.random.randint(0, 2, (2, 2))
model.fit(x, y)
model.metrics_names
['loss', 'mae']
inputs = tf.keras.layers.Input(shape=(3,))
d = tf.keras.layers.Dense(2, name='out')
output_1 = d(inputs)
output_2 = d(inputs)
model = tf.keras.models.Model(
   inputs=inputs, outputs=[output_1, output_2])
model.compile(optimizer="Adam", loss="mse", metrics=["mae", "acc"])
model.fit(x, (y, y))
model.metrics_names
['loss', 'out_loss', 'out_1_loss', 'out_mae', 'out_acc', 'out_1_mae',
'out_1_acc']
run_eagerly Устанавливаемый атрибут, указывающий, должна ли модель выполняться в режиме eager.

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

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

Методы

call

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

call(
    inputs
)

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

В этом случае 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, например, 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 может значительно повысить производительность на 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. Список колбеков, применяемых во время оценки. См. колбеки.
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, только тип 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, не зависит от регуляризующих слоев, таких как шум и dropout. 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. Обратите внимание, что поскольку эта реализация использует multiprocessing, не следует передавать несериализуемые аргументы генератору, так как они не могут быть легко переданы дочерним процессам.

    Поведение распаковки для итераторных входных данных: Общий шаблон — передать 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 для жадного тензора.

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

    Примечание: См. эту запись в 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
    Args
    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)
    })
    
    Args
    dynamic_batch Установить ли размер пакета всех возвращаемых tf.TensorSpec в None. (Обратите внимание, что при определении функциональных или Sequential моделей с tf.keras.Input([...], batch_size=X), размер пакета всегда сохраняется). По умолчанию True.
    Returns
    Если входные данные модели определены, возвращает кортеж (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
      • Для каждой такой группы слоев атрибут группы weight_names, список строк (упорядоченные имена весовых тензоров слоя).
      • Для каждого веса в слое, набор данных, хранящий значение веса, с именем, совпадающим с именем тензора веса.

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

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

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

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

    summary

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

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

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

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

    test_on_batch

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

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

    Протестировать модель на одной группе образцов.

    Args
    x Данные входных данных. Это может быть:
    • Массив NumPy (или подобный массиву) или список массивов (в случае модели с несколькими входами).
    • Тензор TensorFlow или список тензоров (в случае модели с несколькими входами).
    • Словарь, сопоставляющий имена входов с соответствующим массивом/тензорами, если у модели есть именованные входы.
    y Данные целевых значений. Как и входные данные x, они могут быть либо массивом NumPy, либо тензором TensorFlow. Они должны быть согласованы с x (нельзя использовать NumPy входы и тензорные целевые значения или наоборот).
    sample_weight Необязательный массив такой же длины, как x, содержащий веса, применяемые к функции потерь модели для каждой выборки. В случае временных данных вы можете передать 2D массив с формой (выборки, длина_последовательности), чтобы применить разный вес к каждому шагу времени каждой выборки.
    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 Вложенная структура Tensors.
    Возвращает
    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 Вложенная структура Tensors.
    Возвращает
    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/LinearModel

    Spec-Zone.ru

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