Spec-Zone.ru › TensorFlow 2.3

tf.keras.experimental.WideDeepModel

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

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

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

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

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

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

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 доступны только после того, как keras.Model была обучена/оценена на реальных данных.
inputs = tf.keras.layers.Input(shape=(3,))
outputs = tf.keras.layers.Dense(2)(inputs)
model = tf.keras.models.Model(inputs=inputs, outputs=outputs)
model.compile(optimizer="Adam", loss="mse", metrics=["mae"])
model.metrics_names
[]
x = np.random.random((2, 3))
y = np.random.randint(0, 2, (2, 2))
model.fit(x, y)
model.metrics_names
['loss', 'mae']
inputs = tf.keras.layers.Input(shape=(3,))
d = tf.keras.layers.Dense(2, name='out')
output_1 = d(inputs)
output_2 = d(inputs)
model = tf.keras.models.Model(
   inputs=inputs, outputs=[output_1, output_2])
model.compile(optimizer="Adam", loss="mse", metrics=["mae", "acc"])
model.fit(x, (y, y))
model.metrics_names
['loss', 'out_loss', 'out_1_loss', 'out_mae', 'out_acc', 'out_1_mae',
'out_1_acc']
run_eagerly Устанавливаемый атрибут, указывающий, следует ли модели выполнять вычисления в режиме eager.

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

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

Методы

compile

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

compile(
    optimizer='rmsprop', loss=None, metrics=None, loss_weights=None,
    weighted_metrics=None, run_eagerly=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], за исключением функций потерь для разреженных значений, таких как разреженная категориальная кросс-энтропия, где форма = [batch_size, d0, .. dN-1]. y_pred = предсказанные значения с формой = [batch_size, d0, .. dN]. Она возвращает взвешенное значение потери float-тензор. Если используется пользовательский экземпляр 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. Если это список, ожидается 1:1 соответствие выходам модели. Если это словарь, ожидается отображение имен выходов (строк) на скалярные коэффициенты.
weighted_metrics Список метрик, которые будут оцениваться и взвешиваться весами выборки или весами классов во время обучения и тестирования.
run_eagerly Булево. По умолчанию False. Если True, логика этого Model не будет обернута в tf.function. Рекомендуется оставить это значение как None, если ваш Model не может быть выполнен внутри tf.function.
**kwargs Любые дополнительные аргументы. Поддерживаемые аргументы:
  • experimental_steps_per_execution: Целое число. Количество партий, которые нужно запустить во время каждого вызова tf.function. Запуск нескольких партий в одном вызове tf.function может значительно улучшить производительность на TPUs или небольших моделях с большим накладными расходами Python. Обратите внимание, что если это значение установлено в N, методы Callback.on_batch будут вызываться только каждые N партии. В настоящее время это значение по умолчанию 1. Максимум, одна полная эпоха будет запущена при каждом исполнении. Если передано число, большее размера эпохи, выполнение будет усечено до размера эпохи.
  • sample_weight_mode для обратной совместимости.
Возможные исключения
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. Список обратных вызовов для применения во время оценки. См. обратные вызовы.
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, который поддерживает генераторы.

УСТАРЕЛО:

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.
validation_split Вещественное число от 0 до 1. Доля обучающих данных, которая будет использоваться в качестве проверочных данных. Модель отложит эту долю обучающих данных, не будет обучаться на ней и будет оценивать функцию потерь и любые метрики модели на этих данных в конце каждой эпохи. Проверочные данные выбираются из последних образцов в x и y данных, перед перемешиванием. Этот аргумент не поддерживается, когда x является набором данных, генератором или экземпляром keras.utils.Sequence.
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
  • набор данных Для первых двух случаев необходимо указать 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, который поддерживает генераторы.

    УСТАРЕВШАЯ:

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

    См. обсуждение 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, который поддерживает генераторы.

    УСТАРЕЛО:

    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
    )
    

    Сохраняет модель в формате Tensorflow SavedModel или в файл HDF5.

    Сохраняемый файл включает:

    • Архитектуру модели, что позволяет повторно восстановить модель.
    • Веса модели.
    • Состояние оптимизатора, позволяющее продолжить обучение ровно с того места, где вы остановились.

    Это позволяет сохранить все состояние модели в одном файле.

    Сохранённые модели могут быть повторно восстановлены с помощью keras.models.load_model. Модель, возвращённая методом load_model, — это скомпилированная модель, готовая к использованию (если сохраняемая модель не была скомпилирована в первый раз).

    Модели, созданные с помощью API Sequential и Functional, могут быть сохранены в форматах HDF5 и SavedModel. Модели, созданные с помощью подклассов, могут быть сохранены только в формате SavedModel.

    Обратите внимание, что веса модели могут иметь другие имена после загрузки. Имена включают имена модели/слоёв, такие как "dense_1/kernel:0". Рекомендуется использовать свойства слоя для доступа к конкретным переменным, например model.get_layer("dense_1").kernel.

    Аргументы
    filepath Строка, путь к файлу 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 Необязательный объект tf.saved_model.SaveOptions, который определяет параметры сохранения в SavedModel.

    Пример:

    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 обратитесь к руководству по чекпоинтам обучения здесь.

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

    summary

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

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

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

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

    test_on_batch

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

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

    Проверка модели на одной пакетной выборке.

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

    test_step

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

    test_step(
        data
    )
    

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

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

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

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

    Аргументы
    data Вложенная структура Tensor.
    Возвращаемые значения
    Словарь dict, содержащий значения, которые будут переданы в tf.keras.callbacks.CallbackList.on_train_batch_end. Обычно возвращаются значения метрик Model.

    to_json

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

    to_json(
        **kwargs
    )
    

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

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

    Аргументы
    **kwargs Дополнительные ключевые аргументы, которые должны быть переданы в json.dumps().
    Возвращаемые значения
    Строка JSON.

    to_yaml

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

    to_yaml(
        **kwargs
    )
    

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

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

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

    Аргументы
    **kwargs Дополнительные ключевые аргументы, которые должны быть переданы в yaml.dump().
    Возвращаемые значения
    Строка YAML.
    Исключения
    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 Вложенная структура Tensors.
    Возвращаемое значение
    Объект 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.3/api_docs/python/tf/keras/experimental/WideDeepModel

    Spec-Zone.ru

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