tf.keras.experimental.LinearModel
| Просмотреть исходный код на GitHub |
Линейная модель для задач регрессии и классификации.
Наследуется от: Model
tf.keras.experimental.LinearModel(
units=1, activation=None, use_bias=True, kernel_initializer='glorot_uniform',
bias_initializer='zeros', kernel_regularizer=None, bias_regularizer=None,
**kwargs
)
Эта модель аппроксимирует следующую функцию:
где
— смещение, а
— вес для каждого признака.
Пример:
model = LinearModel() model.compile(optimizer='sgd', loss='mse') model.fit(x, y, 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. |
| Атрибуты | |
|---|---|
layers | |
metrics_names | Возвращает метки отображения модели для всех выходов. |
run_eagerly | Настраиваемый атрибут, указывающий, должна ли модель выполняться в режиме eager. Выполнение в режиме eager означает, что ваша модель будет выполняться шаг за шагом, как код Python. Ваша модель может выполняться медленнее, но это должно упростить отладку, позволяя переходить к отдельным вызовам слоев. По умолчанию мы будем пытаться скомпилировать вашу модель в статическую граф для достижения наилучшей производительности. |
sample_weights | |
state_updates | Возвращает updates от всех состоятельных слоев. Это полезно для разделения обновлений обучения и обновлений состояния, например, когда необходимо обновить внутреннее состояние слоя во время предсказания. |
stateful | |
Методы
compile
compile(
optimizer='rmsprop', loss=None, metrics=None, loss_weights=None,
sample_weight_mode=None, weighted_metrics=None, target_tensors=None,
distribute=None, **kwargs
)
Настраивает модель для обучения.
| Аргументы | |
|---|---|
optimizer | Строка (имя оптимизатора) или экземпляр оптимизатора. См. tf.keras.optimizers. |
loss | Строка (имя функции потерь), функция потерь или экземпляр tf.losses.Loss. См. tf.losses. Если у модели несколько выходов, можно использовать разные функции потерь для каждого выхода, передав словарь или список функций потерь. Значение потерь, которое будет минимизироваться моделью, будет суммой всех отдельных потерь. |
metrics | Список метрик, которые будут оцениваться моделью во время обучения и тестирования. Обычно используются metrics=['accuracy']. Чтобы указать разные метрики для разных выходов многовыходной модели, также можно передать словарь, например, metrics={'output_a': 'accuracy', 'output_b': ['accuracy', 'mse']}. Можно также передать список (длина = длина(выходов)) списков метрик, таких как metrics=[['accuracy'], ['accuracy', 'mse']] или metrics=['accuracy', ['accuracy', 'mse']]. |
loss_weights | Необязательный список или словарь, определяющие скалярные коэффициенты (числа с плавающей точкой Python), чтобы взвесить вклады потерь различных выходов модели. Значение потерь, которое будет минимизироваться моделью, будет затем взвешенной суммой всех отдельных потерь, взвешенных коэффициентами loss_weights. Если это список, ожидается взаимно однозначное соответствие выходам модели. Если это тензор, ожидается отображение имён выходов (строки) на скалярные коэффициенты. |
sample_weight_mode | Если необходимо выполнить взвешивание выборок на уровне временного шага (2D веса), установите это значение в "temporal". None по умолчанию использует взвешивание выборок на уровне образца (1D). Если у модели несколько выходов, можно использовать разные sample_weight_mode для каждого выхода, передав словарь или список режимов. |
weighted_metrics | Список метрик, которые будут оцениваться и взвешиваться весами выборок или весами классов во время обучения и тестирования. |
target_tensors | По умолчанию Keras создает заглушки для целевых данных модели, которые будут заполняться целевыми данными во время обучения. Если вместо этого вы хотите использовать собственные тензоры целевых данных (в свою очередь, Keras не будет ожидать внешние данные NumPy для этих целевых данных во время обучения), вы можете указать их через аргумент target_tensors. Это может быть один тензор (для модели с одним выходом), список тензоров или словарь, сопоставляющий имена выходов с тензорами целевых данных. |
distribute | НЕ ПОДДЕРЖИВАЕТСЯ В TF 2.0, пожалуйста, создайте и скомпилируйте модель в области действия стратегии распределения, а не передавайте ее в compile. |
**kwargs | Любые дополнительные аргументы. |
| Возможные ошибки | |
|---|---|
ValueError | В случае неверных аргументов для optimizer, loss, metrics или sample_weight_mode. |
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
)
Возвращает значение потерь и значения метрик для модели в режиме тестирования.
Вычисление выполняется по партиям.
| Аргументы | |
|---|---|
x | Входные данные. Это может быть:
|
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 весов для тестовых выборок, используемый для взвешивания функции потерь. Можно передать плоский (1D) массив NumPy с такой же длиной, как у входных выборок (1:1 соответствие между весами и выборками), или, в случае временных данных, можно передать двумерный массив с формой (samples, sequence_length), чтобы применить разные веса к каждому временному шагу каждой выборки. В этом случае вы должны убедиться, что указали sample_weight_mode="temporal" в compile(). Этот аргумент не поддерживается, когда 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. Обратите внимание, что поскольку эта реализация использует многопроцессорность, не следует передавать несериализуемые аргументы в генератор, поскольку они не могут быть легко переданы дочерним процессам. |
| Возвращаемое значение | |
|---|---|
Скалярная тестовая потеря (если модель имеет один выход и нет метрик) или список скаляров (если модель имеет несколько выходов и/или метрик). Атрибут model.metrics_names предоставит вам метки для отображения скалярных выходов. |
| Возможные исключения | |
|---|---|
ValueError | в случае неверных аргументов. |
evaluate_generator
evaluate_generator(
generator, steps=None, callbacks=None, max_queue_size=10, workers=1,
use_multiprocessing=False, verbose=0
)
Оценивает модель на основе генератора данных.
Генератор должен возвращать данные того же типа, что и принимает test_on_batch.
| Аргументы | |
|---|---|
generator | Генератор, возвращающий кортежи (входные данные, целевые значения) или (входные данные, целевые значения, веса_выборки) или экземпляр объекта keras.utils.Sequence, чтобы избежать дублирования данных при использовании многопроцессорной обработки. |
steps | Общее количество шагов (пакетов выборок), которые нужно получить от generator, прежде чем остановиться. Необязательный параметр для Sequence: если не указано, будет использовано значение len(generator) в качестве количества шагов. |
callbacks | Список экземпляров keras.callbacks.Callback. Список колбэков, которые нужно применить во время оценки. См. колбэки. |
max_queue_size | максимальный размер очереди генератора |
workers | Целое число. Максимальное количество процессов, которые нужно запустить при использовании многопоточной обработки на основе процессов. Если не указано, workers по умолчанию будет равно 1. Если 0, генератор будет выполняться на основном потоке. |
use_multiprocessing | Булево значение. Если True, использовать многопоточную обработку на основе процессов. Если не указано, use_multiprocessing по умолчанию будет равно False. Обратите внимание, что, поскольку эта реализация использует многопроцессорную обработку, вы не должны передавать несериализуемые аргументы в генератор, так как их сложно передать дочерним процессам. |
verbose | Режим отображения, 0 или 1. |
| Возвращаемое значение | |
|---|---|
Скалярная тестовая потеря (если модель имеет один выход и нет метрик) или список скаляров (если модель имеет несколько выходов и/или метрик). Атрибут model.metrics_names предоставит вам метки для отображения скалярных выходов. |
| Возможные исключения | |
|---|---|
ValueError | в случае неверных аргументов. |
| Возможные исключения | |
|---|---|
ValueError | В случае, если генератор возвращает данные в неверном формате. |
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_freq=1, max_queue_size=10, workers=1,
use_multiprocessing=False, **kwargs
)
Обучает модель для фиксированного числа эпох (итераций по набору данных).
| Аргументы | |
|---|---|
x | Данные для обучения. Могут быть:
|
y | Целевые данные. Как и входные данные x, они могут быть массивами Numpy или тензорами TensorFlow. Они должны быть согласованы с x (вы не можете использовать входные данные Numpy и целевые данные в формате тензоров, или наоборот). Если x является набором данных, генератором или экземпляром keras.utils.Sequence, y не нужно указывать (так как целевые данные будут получены из x). |
batch_size | Целое число или None. Количество образцов на итерацию градиентного спуска. Если не указано, batch_size будет по умолчанию равно 32. Не указывайте batch_size если данные представлены в виде символьных тензоров, наборов данных, генераторов или экземпляров keras.utils.Sequence (так как они генерируют батчи). |
epochs | Целое число. Количество эпох для обучения модели. Эпоха — это итерация по всем x и y данным. Обратите внимание, что в сочетании с 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_data переопределит validation_split. validation_data может быть: (x_val, y_val) массивов Numpy или тензоров(x_val, y_val, val_sample_weights) массивов Numpybatch_size должен быть предоставлен. Для последнего случая, validation_steps должен быть предоставлен. |
shuffle | Булево значение (перемешивать ли обучающие данные перед каждой эпохой) или строка ('batch'). 'batch' — специальный вариант для работы с ограничениями данных HDF5; перемешивание происходит в блоках размером batch. Не оказывает влияния, если steps_per_epoch не None. |
class_weight | Необязательный словарь, сопоставляющий индексы классов (целые числа) с весами (вещественные числа), используемый для взвешивания функции потерь (только во время обучения). Это может быть полезно, чтобы модель "уделяла больше внимания" образцам из недопредставленного класса. |
sample_weight | Необязательный массив Numpy весов для обучающих образцов, используемый для взвешивания функции потерь (только во время обучения). Вы можете передать плоский (одномерный) массив Numpy с такой же длиной, как у входных образцов (сопоставление 1:1 между весами и образцами), или в случае временных данных, вы можете передать двумерный массив с формой (samples, sequence_length), чтобы применить разные веса к каждому временной шагу каждого образца. В этом случае вы должны указать sample_weight_mode="temporal" в compile(). Этот аргумент не поддерживается, когда x является набором данных, генератором или keras.utils.Sequence экземпляром, вместо этого передайте sample_weights как третий элемент x. |
initial_epoch | Целое число. Эпоха, с которой начать обучение (полезно для возобновления предыдущей сессии обучения). |
steps_per_epoch | Целое число или None. Общее количество шагов (батчей образцов) перед объявлением одной эпохи завершенной и началом следующей. При обучении с тензорными входными данными, такими как тензоры данных TensorFlow, значение None по умолчанию равно количеству образцов в наборе данных, деленному на размер батча, или 1, если это невозможно определить. Если x — набор данных tf.data, и 'steps_per_epoch' — None, эпоха будет продолжаться до исчерпания входного набора данных. Этот аргумент не поддерживается с входными массивами. |
validation_steps | Актуален только если validation_data предоставлен и является набором данных tf.data. Общее количество шагов (батчей образцов), которые нужно нарисовать, прежде чем остановить процесс, при выполнении проверки в конце каждой эпохи. Если validation_data — набор данных tf.data и 'validation_steps' — None, проверка будет выполняться до исчерпания набора данных validation_data. |
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. Обратите внимание, что из-за того, что эта реализация использует multiprocessing, вы не должны передавать несериализуемые аргументы генератору, так как они не могут быть легко переданы дочерним процессам. |
**kwargs | Используется для обеспечения обратной совместимости. |
| Возвращаемое значение | |
|---|---|
Объект History. Его атрибут History.history — запись значений потерь обучения и метрик на каждой эпохе, а также значений потерь проверки и метрик проверки (при необходимости). |
| Исключения | |
|---|---|
RuntimeError | Если модель никогда не была скомпилирована. |
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.
Генератор выполняется параллельно с моделью для повышения эффективности. Например, это позволяет выполнять реальное увеличение данных изображений на CPU параллельно с обучением модели на GPU.
Использование keras.utils.Sequence гарантирует порядок и гарантирует однократное использование каждого входного значения за эпоху при использовании use_multiprocessing=True.
| Аргументы | |
|---|---|
generator | Генератор или экземпляр объекта Sequence (keras.utils.Sequence), чтобы избежать дублирования данных при использовании многопроцессорности. Выход генератора должен быть либо
|
steps_per_epoch | Общее количество шагов (партий образцов), которые нужно получить от generator, прежде чем объявлять одну эпоху завершённой и начинать следующую эпоху. Обычно оно должно быть равно количеству образцов в вашем наборе данных, делённому на размер партии. Необязательно для Sequence: если не указано, будет использовано значение len(generator) в качестве количества шагов. |
epochs | Целое число, общее количество итераций по данным. |
verbose | Режим отображения, 0, 1 или 2. |
callbacks | Список обратных вызовов, которые будут вызываться во время обучения. |
validation_data | Это может быть |
validation_steps | Актуально только если validation_data является генератором. Общее количество шагов (партий образцов), которые нужно получить от generator, прежде чем остановиться. Необязательно для Sequence: если не указано, будет использовано значение len(validation_data) в качестве количества шагов. |
validation_freq | Актуально только если предоставлены данные валидации. Целое число или экземпляр collections_abc.Container (например, список, кортеж и т. д.). Если целое число, указывает, сколько эпох обучения нужно выполнить, прежде чем выполнить новую проверку валидации, например, validation_freq=2 выполняет валидацию каждые 2 эпохи. Если контейнер, указывает эпохи, на которых нужно выполнить валидацию, например, validation_freq=[1, 2, 10] выполняет валидацию в конце 1-й, 2-й и 10-й эпох. |
class_weight | Словарь, сопоставляющий индексы классов с весом для класса. |
max_queue_size | Целое число. Максимальный размер очереди генератора. Если не указано, max_queue_size будет по умолчанию равен 10. |
workers | Целое число. Максимальное количество процессов для запуска при использовании многопоточности на основе процессов. Если не указано, workers будет по умолчанию равен 1. Если 0, генератор будет выполняться на основном потоке. |
use_multiprocessing | Булево значение. Если True, использовать многопоточность на основе процессов. Если не указано, use_multiprocessing будет по умолчанию равно False. Обратите внимание, что, поскольку эта реализация использует многопроцессорность, вы не должны передавать несериализуемые аргументы в генератор, так как они не могут быть легко переданы дочерним процессам. |
shuffle | Булево значение. Нужно ли перемешивать порядок партий в начале каждой эпохи. Используется только с экземплярами Sequence (keras.utils.Sequence). Не оказывает никакого влияния, если steps_per_epoch не является None. |
initial_epoch | Эпоха, с которой следует начать обучение (полезно для возобновления предыдущего сеанса обучения) |
| Возвращаемое значение | |
|---|---|
Объект History. |
Пример:
def generate_arrays_from_file(path):
while 1:
f = open(path)
for line in f:
# create numpy arrays of input data
# and labels, from each line in the file
x1, x2, y = process_line(line)
yield ({'input_1': x1, 'input_2': x2}, {'output': y})
f.close()
model.fit_generator(generate_arrays_from_file('/my_file.txt'),
steps_per_epoch=10000, epochs=10)
Возможная ошибка: ValueError. Возникает, если генератор возвращает данные в неверном формате.
get_layer
get_layer(
name=None, index=None
)
Возвращает слой на основе его имени (уникального) или индекса.
Если name и index оба указаны, index будет иметь приоритет. Индексы основаны на порядке горизонтального обхода графа (снизу вверх).
| Аргументы | |
|---|---|
name | Строка, имя слоя. |
index | Целое число, индекс слоя. |
| Возвращаемое значение | |
|---|---|
| Экземпляр слоя. |
| Возможные ошибки | |
|---|---|
ValueError | В случае неверного имени или индекса слоя. |
load_weights
load_weights(
filepath, by_name=False
)
Загружает все веса слоя из файла TensorFlow или HDF5.
predict
predict(
x, batch_size=None, verbose=0, steps=None, callbacks=None, max_queue_size=10,
workers=1, use_multiprocessing=False
)
Генерирует предсказания для входных образцов.
Вычисления выполняются по частям.
| Аргументы | |
|---|---|
x | Входные образцы. Это может быть:
|
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. Обратите внимание, что, поскольку эта реализация использует многопроцессорность, вы не должны передавать несериализуемые аргументы в генератор, так как они не могут быть легко переданы дочерним процессам. |
| Возвращаемое значение | |
|---|---|
| Массив(ы) NumPy с предсказаниями. |
| Возможные ошибки | |
|---|---|
ValueError | В случае несоответствия между предоставленными входными данными и ожиданиями модели, или если состояниевая модель получает количество образцов, которое не кратно размеру партии. |
predict_generator
predict_generator(
generator, steps=None, callbacks=None, max_queue_size=10, workers=1,
use_multiprocessing=False, verbose=0
)
Генерирует предсказания для входных образцов из генератора данных.
Генератор должен возвращать тот же тип данных, что и принимается predict_on_batch.
| Аргументы | |
|---|---|
generator | Генератор, возвращающий партии входных образцов, или экземпляр объекта keras.utils.Sequence, чтобы избежать дублирования данных при использовании многопроцессорности. |
steps | Общее количество шагов (партий образцов), которые нужно получить от generator, прежде чем остановиться. Необязательно для Sequence: если не указано, будет использовано значение len(generator) в качестве количества шагов. |
callbacks | Список экземпляров keras.callbacks.Callback. Список обратных вызовов, которые нужно применить во время предсказания. См. обратные вызовы. |
max_queue_size | Максимальный размер очереди генератора. |
workers | Целое число. Максимальное количество процессов для запуска при использовании многопоточности на основе процессов. Если не указано, workers будет по умолчанию равно 1. Если 0, генератор будет выполняться в основном потоке. |
use_multiprocessing | Булево значение. Если True, использовать многопоточность на основе процессов. Если не указано, use_multiprocessing будет по умолчанию равно False. Обратите внимание, что, поскольку эта реализация использует многопроцессорность, вы не должны передавать несериализуемые аргументы в генератор, так как они не могут быть легко переданы дочерним процессам. |
verbose | Режим отображения, 0 или 1. |
| Возвращаемое значение | |
|---|---|
| Массив(ы) NumPy с предсказаниями. |
| Возвращает исключение | |
|---|---|
ValueError | В случае, если генератор возвращает данные в некорректном формате. |
predict_on_batch
predict_on_batch(
x
)
Возвращает прогнозы для одной порции (батч) образцов.
| Аргументы | |
|---|---|
x | Данные для входных данных. Это может быть:
|
| Возвращает | |
|---|---|
| Массив(ы) NumPy прогнозов. |
| Возвращает исключение | |
|---|---|
ValueError | В случае несовпадения количества входных данных с ожиданиями модели. |
reset_metrics
reset_metrics()
Сбрасывает состояние метрик.
reset_states
reset_states()
save
save(
filepath, overwrite=True, include_optimizer=True, save_format=None,
signatures=None
)
Сохраняет модель в формате Tensorflow SavedModel или в один файл HDF5.
Файл сохранения содержит:
- Архитектуру модели, позволяющую повторно создать модель.
- Веса модели.
- Состояние оптимизатора, позволяющее возобновить обучение точно с того места, где вы остановились.
Это позволяет сохранить всю информацию о состоянии модели в одном файле.
Сохранённые модели могут быть повторно созданы с помощью keras.models.load_model. Модель, возвращаемая load_model, — это скомпилированная модель, готовая к использованию (если сохранённая модель не была скомпилирована изначально).
| Аргументы | |
|---|---|
filepath: Строка, путь к файлу SavedModel или H5 для сохранения модели. overwrite: Заменять ли существующий файл на целевом месте без запроса или предоставить пользователю возможность ручного подтверждения. include_optimizer: Если True, сохранить состояние оптимизатора вместе. save_format: Либо 'tf', либо 'h5', указывающие на сохранение модели в формате Tensorflow SavedModel или HDF5. По умолчанию сейчас 'h5', но в TensorFlow 2.0 будет переключено на 'tf'. Опция 'tf' в настоящее время отключена (используйте tf.keras.experimental.export_saved_model вместо неё). | |
signatures | Подписи для сохранения с SavedModel. Применимо только к формату 'tf'. Подробности см. в аргументе signatures в tf.saved_model.save. |
Пример:
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
)
Сохраняет все веса слоёв.
Сохраняет в формате 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 см. в руководстве по контрольным точкам обучения https://www.tensorflow.org/alpha/guide/checkpoints.
| Аргументы | |
|---|---|
filepath | Строка, путь к файлу для сохранения весов. При сохранении в формате TensorFlow это префикс, используемый для файлов контрольных точек (генерируется несколько файлов). Обратите внимание, что суффикс '.h5' вызывает сохранение весов в формате HDF5. |
overwrite | Заменять ли существующий файл на целевом месте без запроса или предоставить пользователю возможность ручного подтверждения. |
save_format | Либо 'tf', либо 'h5'. Файл с filepath с расширением '.h5' или '.keras' будет по умолчанию сохранён в формате HDF5, если save_format равно None. В противном случае None по умолчанию 'tf'. |
| Возвращает исключение | |
|---|---|
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
)
Тестирует модель на одной порции (батч) образцов.
| Аргументы | |
|---|---|
x | Данные для входных данных. Это может быть:
|
y | Данные целевых значений. Как и данные входных данных x, они могут быть либо массивами NumPy, либо тензорами TensorFlow. Они должны быть согласованы с x (нельзя иметь входные данные NumPy и целевые значения в формате тензора, или наоборот). Если x является набором данных y не должен быть указан (так как целевые значения будут получены из итератора). |
sample_weight | Необязательный массив той же длины, что и x, содержащий веса, применяемые к функции потерь модели для каждого образца. В случае временных данных вы можете передать двумерный массив с формой (образцы, длина_последовательности), чтобы применить различный вес к каждому временнному шагу каждого образца. В этом случае вы должны убедиться, что указали sample_weight_mode="temporal" в compile(). Этот аргумент не поддерживается, когда x является набором данных. |
reset_metrics | Если True, возвращаемые метрики будут только для этой порции. Если False, метрики будут накапливаться со статусом по всем порциям. |
| Возвращаемое значение | |
|---|---|
Скалярная тестовая потеря (если у модели один выход и нет метрик) или список скаляров (если у модели несколько выходов и/или метрик). Атрибут model.metrics_names предоставит вам метки отображения для скалярных выходов. |
| Исключения | |
|---|---|
ValueError | В случае неверных аргументов, предоставленных пользователем. |
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
)
Выполняет одно обновление градиента на одной порции данных.
| Аргументы | |
|---|---|
x | Данные входных данных. Это может быть:
|
y | Данные целевых значений. Как и входные данные x, они могут быть массивами Numpy или тензорами TensorFlow. Они должны быть согласованы с x (вы не можете иметь входные данные Numpy и целевые значения тензоров или наоборот). Если x — это набор данных, y не должен быть указан (так как целевые значения будут получены из итератора). |
sample_weight | Необязательный массив той же длины, что и x, содержащий веса, которые применяются к потере модели для каждого образца. В случае временных данных вы можете передать двумерный массив с формой (образцы, длина_последовательности), чтобы применить различные веса к каждому шагу времени каждого образца. В этом случае вы должны убедиться, что указали sample_weight_mode="временной" в compile(). Этот аргумент не поддерживается, когда x является набором данных. |
class_weight | Необязательный словарь, сопоставляющий индексы классов (целые числа) с весом (вещественное число), который применяется к потере модели для образцов из этого класса во время обучения. Это может быть полезно, чтобы сказать модели "уделять больше внимания" образцам из недопредставленного класса. |
reset_metrics | Если True, метрики, которые будут возвращены, будут только для этой порции. Если False, метрики будут накапливаться по всем порциям. |
| Возвращаемое значение | |
|---|---|
Скалярная потеря обучения (если у модели один выход и нет метрик) или список скаляров (если у модели несколько выходов и/или метрик). Атрибут model.metrics_names предоставит вам метки отображения для скалярных выходов. |
| Исключения | |
|---|---|
ValueError | В случае неверных аргументов, предоставленных пользователем. |
© 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/r1.15/api_docs/python/tf/keras/experimental/LinearModel