Spec-Zone.ru › TensorFlow 2.4

tf.keras.experimental.WideDeepModel

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

Модель Wide & Deep для задач регрессии и классификации.

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

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

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

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

tf.compat.v1.keras.experimental.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_model tf.keras.Model, её выход должен совпадать с выходом линейной модели.
activation Функция активации. Установите её в значение None для сохранения линейной активации.
**kwargs Параметры, передаваемые в BaseLayer.init. Допустимые параметры включают name.
Атрибуты
distribute_strategy tf.distribute.Strategy, под управлением которой была создана эта модель.
layers
metrics_names Возвращает метки отображения для всех выходов модели.
Примечание: metrics_names доступны только после обучения/оценки модели на реальных данных.
inputs = tf.keras.layers.Input(shape=(3,))
outputs = tf.keras.layers.Dense(2)(inputs)
model = tf.keras.models.Model(inputs=inputs, outputs=outputs)
model.compile(optimizer="Adam", loss="mse", metrics=["mae"])
model.metrics_names
[]
x = np.random.random((2, 3))
y = np.random.randint(0, 2, (2, 2))
model.fit(x, y)
model.metrics_names
['loss', 'mae']
inputs = tf.keras.layers.Input(shape=(3,))
d = tf.keras.layers.Dense(2, name='out')
output_1 = d(inputs)
output_2 = d(inputs)
model = tf.keras.models.Model(
   inputs=inputs, outputs=[output_1, output_2])
model.compile(optimizer="Adam", loss="mse", metrics=["mae", "acc"])
model.fit(x, (y, y))
model.metrics_names
['loss', 'out_loss', 'out_1_loss', 'out_mae', 'out_acc', 'out_1_mae',
'out_1_acc']
run_eagerly Устанавливаемый атрибут, указывающий, нужно ли выполнять модель в режиме Eager Execution.

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

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

Методы

compile

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

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

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

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

evaluate

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

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

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

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

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

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

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

evaluate_generator

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

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

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

УСТАРЕВШИЙ:

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

fit

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

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

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

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

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

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

    fit_generator

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

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

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

    УСТАРЕВШАЯ версия:

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

    get_layer

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

    get_layer(
        name=None, index=None
    )
    

    Извлекает слой по имени (уникальному) или индексу.

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

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

    load_weights

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

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

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

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

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

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

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

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

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

    make_predict_function

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

    make_predict_function()
    

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

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

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

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

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

    make_test_function

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

    make_test_function()
    

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

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

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

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

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

    make_train_function

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

    make_train_function()
    

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

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

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

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

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

    predict

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

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

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

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

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

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

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

    predict_generator

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

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

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

    УСТАРЕВШИЙ:

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

    predict_on_batch

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

    predict_on_batch(
        x
    )
    

    Возвращает предсказания для одного батча образцов.

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

    predict_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.

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

    Пример:

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

    save_weights

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

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

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

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

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

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

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

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

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

    Arguments
    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.
    ValueError Для некорректных/неизвестных аргументов формата.

    summary

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

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

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

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

    test_on_batch

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

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

    Тестирование модели на одной пачке образцов.

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

    test_step

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

    test_step(
        data
    )
    

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

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

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

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

    Arguments
    data Вложенная структура Tensor.
    Returns
    Объект 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={}).

    Arguments
    **kwargs Дополнительные ключевые аргументы, которые нужно передать в json.dumps().
    Returns
    Строка JSON.

    to_yaml

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

    to_yaml(
        **kwargs
    )
    

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

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

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

    Arguments
    **kwargs Дополнительные ключевые аргументы, которые нужно передать в yaml.dump().
    Returns
    Строка YAML.
    Raises
    ImportError если модуль yaml не найден.

    train_on_batch

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

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

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

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

    train_step

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

    train_step(
        data
    )
    

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

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

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

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

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

    © 2020 The TensorFlow Authors. All rights reserved.
    Licensed under the Creative Commons Attribution License 3.0.
    Code samples licensed under the Apache 2.0 License.
    https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/keras/experimental/WideDeepModel

    Spec-Zone.ru

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