Spec-Zone.ru › TensorFlow 2.3

tf.keras.experimental.LinearModel

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

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

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

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

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

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

tf.compat.v1.keras.experimental.LinearModel

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

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

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

где

$$\beta$$

является смещением, а

$$w_{i}$$

является весом для каждого признака.

Пример:

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

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

Пример:

model = LinearModel()
opt = tf.keras.optimizers.Adam()
loss_fn = tf.keras.losses.MeanSquaredError()
with tf.GradientTape() as tape:
  output = model(sparse_input)
  loss = tf.reduce_mean(loss_fn(target, output))
grads = tape.gradient(loss, model.weights)
opt.apply_gradients(zip(grads, model.weights))
Аргументы
units Положительное целое число, размерность выхода без размера пакета.
activation Функция активации для использования. Если ничего не указано, активация не применяется.
use_bias нужно ли вычислять смещение/перехват для этой модели. Если установлено значение False, смещение/перехват не будут использоваться в расчётах, например, данные уже центрированы.
kernel_initializer Инициализатор матриц весов kernel.
bias_initializer Инициализатор вектора смещения.
kernel_regularizer Регуляризатор векторов ядра.
bias_regularizer Регуляризатор вектора смещения.
**kwargs Параметры, которые передаются в BaseLayer.init.
Атрибуты
distribute_strategy tf.distribute.Strategy, в рамках которого была создана эта модель.
layers
metrics_names Возвращает метки отображения модели для всех выходов.
Примечание: metrics_names доступны только после того, как 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 = значения ground truth, имеющие форму = [batch_size, d0, .. dN], за исключением разреженных функций потерь, таких как sparse categorical crossentropy, где форма = [batch_size, d0, .. dN-1]. y_pred = предсказанные значения, имеющие форму = [batch_size, d0, .. dN]. Возвращает взвешенное значение потери float tensor. Если используется пользовательский экземпляр 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 может значительно улучшить производительность на TPU или для небольших моделей с большой накладными расходами 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 и целевые значения TensorFlow или наоборот). Если 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, не зависит от таких слоев регуляризации, как шум и дропаут. 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, содержащий значения, которые будут переданы 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. Список обратных вызовов, которые применяются во время предсказания. См. обратные вызовы.
    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 Вложенная структура Tensors.
    Возвращаемое значение
    Результат одного шага вывода, как правило, результат вызова 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 Строка, объект 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 Необязательный объект 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 Вложенная структура 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.3/api_docs/python/tf/keras/experimental/LinearModel

    Spec-Zone.ru

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