Примечание: Новым пользователям необходимо установить fix_global_step_increment_bug=True при создании оценщика.
Пример:
sparse_feature_a = sparse_column_with_hash_bucket(...)
sparse_feature_b = sparse_column_with_hash_bucket(...)
sparse_feature_a_x_sparse_feature_b = crossed_column(...)
sparse_feature_a_emb = embedding_column(sparse_id_column=sparse_feature_a,
...)
sparse_feature_b_emb = embedding_column(sparse_id_column=sparse_feature_b,
...)
estimator = DNNLinearCombinedRegressor(
# common settings
weight_column_name=weight_column_name,
# wide settings
linear_feature_columns=[sparse_feature_a_x_sparse_feature_b],
linear_optimizer=tf.compat.v1.train.FtrlOptimizer(...),
# deep settings
dnn_feature_columns=[sparse_feature_a_emb, sparse_feature_b_emb],
dnn_hidden_units=[1000, 500, 100],
dnn_optimizer=tf.compat.v1.train.ProximalAdagradOptimizer(...))
# To apply L1 and L2 regularization, you can set optimizers as follows:
tf.compat.v1.train.ProximalAdagradOptimizer(
learning_rate=0.1,
l1_regularization_strength=0.001,
l2_regularization_strength=0.001)
# It is same for FtrlOptimizer.
# Input builders
def input_fn_train: # returns x, y
...
def input_fn_eval: # returns x, y
...
def input_fn_predict: # returns x, None
...
estimator.train(input_fn_train)
estimator.evaluate(input_fn_eval)
estimator.predict(input_fn_predict)
Вход fit, train, и evaluate должен содержать следующие признаки, в противном случае возникнет KeyError: если weight_column_name не None, признак с key=weight_column_name значением Tensor. для каждого column в dnn_feature_columns + linear_feature_columns.
- if `column` is a `SparseColumn`, a feature with `key=column.name`
whose `value` is a `SparseTensor`.
- if `column` is a `WeightedSparseColumn`, two features: the first with
`key` the id column name, the second with `key` the weight column name.
Both features' `value` must be a `SparseTensor`.
- if `column` is a `RealValuedColumn, a feature with `key=column.name`
whose `value` is a `Tensor`.
Аргументы
model_dir
Каталог для сохранения параметров модели, графа и т. д. Также можно использовать для загрузки контрольных точек из каталога в оценщик, чтобы продолжить обучение ранее сохранённой модели.
weight_column_name
Строка, определяющая имя столбца признака, представляющего веса. Используется для уменьшения или увеличения веса примеров во время обучения. Будет умножаться на потерю примера.
linear_feature_columns
Итерируемый объект, содержащий все столбцы признаков, используемые линейной частью модели. Все элементы должны быть экземплярами классов, производными от FeatureColumn.
linear_optimizer
Экземпляр tf.Optimizer, используемый для применения градиентов к линейной части модели. Если None, будет использоваться оптимизатор FTRL.
_joint_linear_weights
Если True, будет использоваться одна (возможно, разнесённая) переменная для хранения весов линейной модели. Это быстрее, но требует, чтобы все столбцы были разреженными и имели комбинировщик 'sum'.
dnn_feature_columns
Итерируемый объект, содержащий все столбцы признаков, используемые глубокой частью модели. Все элементы должны быть экземплярами классов, производными от FeatureColumn.
dnn_optimizer
Экземпляр tf.Optimizer, используемый для применения градиентов к глубокой части модели. Если None, будет использоваться оптимизатор Adagrad.
dnn_hidden_units
Список скрытых узлов на слой. Все слои полностью соединены.
dnn_activation_fn
Функция активации, применяемая к каждому слою. Если None, будет использоваться tf.nn.relu.
dnn_dropout
Если не равно None, вероятность выброса заданной координаты.
gradient_clip_norm
Числовое значение > 0. Если указано, градиенты будут ограничены своей глобальной нормой с этим коэффициентом ограничения. Подробнее см. tf.clip_by_global_norm.
enable_centered_bias
Булевое значение. Если True, оценщик будет обучаться смещённой переменной для каждого класса. Остальная часть модели будет обучаться остатку после смещения.
label_dimension
Число регрессионных целей на пример. Это размер последнего измерения меток и логарифмов Tensor объектов (обычно, у них форма [batch_size, label_dimension]).
config
Объект RunConfig для настройки параметров выполнения.
feature_engineering_fn
Функция обработки признаков. Принимает признаки и метки, которые являются результатом input_fn, и возвращает признаки и метки, которые будут поданы в модель.
embedding_lr_multipliers
Необязательно. Словарь из EmbeddingColumn к float множителю. Множитель будет использоваться для умножения на скорость обучения для переменных встраивания.
input_layer_min_slice_size
Необязательно. Минимальный размер фрагмента разделения входного слоя. Если не указано, будет использоваться значение по умолчанию 64 Мб.
fix_global_step_increment_bug
Если False, оценщику нужны два шага подгонки для оптимизации как линейной, так и глубокой частей. Если True, эта ошибка исправлена. Новым пользователям необходимо установить это в True, но значение по умолчанию False для обратной совместимости.
Возбуждения
ValueError
Если и linear_feature_columns и dnn_features_columns одновременно пусты.
Атрибуты
config
model_dir
Возвращает путь, в котором процесс оценки будет искать контрольные точки.
Экспортирует график предсказания как SavedModel в указанный каталог.
Аргументы
export_dir_base
Строка, содержащая каталог для записи экспортированного графа и контрольных точек.
serving_input_fn
Функция, которая не принимает аргументов и возвращает InputFnOps.
default_output_alternative_key
Имя головки для обслуживания, если не указано. Не требуется для моделей с одной головкой.
assets_extra
Словарь, определяющий, как заполнить каталог assets.extra в экспортированном SavedModel. Каждый ключ должен указывать путь назначения (включая имя файла) относительно каталога assets.extra. Соответствующее значение — полный путь исходного файла, который нужно скопировать. Например, простой случай копирования одного файла без переименования задаётся как {'my_asset_file.txt': '/path/to/my_asset_file.txt'}.
as_text
Нужно ли записывать прото SavedModel в текстовом формате.
checkpoint_path
Путь к контрольной точке для экспорта. Если None (значение по умолчанию), выбирается самая последняя контрольная точка, найденная в каталоге модели.
graph_rewrite_specs
Итерируемый объект GraphRewriteSpec. Каждый элемент создаст отдельный MetaGraphDef в экспортированном SavedModel, помеченный и переписанный, как указано. По умолчанию используется один элемент с тегом по умолчанию ("serve") и без переписывания.
Инкрементная подгонка на наборе выборок. (устаревшие аргументы)
Ожидается, что этот метод будет вызываться несколько раз последовательно на разных или тех же фрагментах набора данных. Это может реализовать итеративное обучение или обучение вне памяти/онлайн.
Это особенно полезно, когда весь набор данных слишком велик, чтобы поместиться в памяти одновременно. Или когда модели требуется много времени для сходимости, и вы хотите разбить обучение на подчасти.
Аргументы
x
Матрица формы [n_samples, n_features...]. Может быть итератором, возвращающим массивы признаков. Образцы обучающих данных для обучения модели. Если установлено, input_fn должно быть None.
y
Вектор или матрица [n_samples] или [n_samples, n_outputs]. Может быть итератором, возвращающим массив меток. Значения меток обучения (метки классов в классификации, вещественные числа в регрессии). Если установлено, input_fn должно быть None.
input_fn
Функция ввода. Если установлено, x, y, и batch_size должны быть None.
steps
Количество шагов для обучения модели. Если None, обучаться бесконечно.
batch_size
Размер мини-пакета для использования на входе, по умолчанию — первое измерение x. Должно быть None, если input_fn предоставлено.
monitors
Список экземпляров подкласса BaseMonitor. Используется для обратного вызова внутри цикла обучения.
Возвращает
self, для цепочки вызовов.
Исключения
ValueError
Если хотя бы одно из x и y предоставлено, и input_fn предоставлено.
Возвращает прогнозы для заданных признаков. (устаревшие значения аргументов) (устаревшие значения аргументов)
По умолчанию возвращает предсказанные оценки. Но это значение по умолчанию будет вскоре удалено. Пользователи должны либо передать outputs, или вызвать метод predict_scores.
Аргументы
x
признаки.
input_fn
Функция ввода. Если установлено, x должно быть None.
batch_size
Переопределение размера пакета по умолчанию.
outputs
список str, имя выходного значения для прогнозирования. Если None, возвращает оценки.
as_iterable
Если True, возвращает итератор, который продолжает генерировать прогнозы для каждого примера до тех пор, пока ввод не исчерпается. Примечание: Входные данные должны завершаться, если вы хотите завершить итератор (например, убедитесь, что вы передаёте num_epochs=1, если вы используете что-то вроде read_batch_features).
Возвращает
Массив NumPy предсказанных оценок (или итератор предсказанных оценок, если as_iterable True). Если label_dimension == 1, форма выходных данных — [batch_size], в противном случае форма — [batch_size, label_dimension]. Если outputs установлено, возвращает словарь прогнозов.
Возвращает предсказанные оценки для заданных признаков. (устаревшие значения аргументов)
Аргументы
x
признаки.
input_fn
Функция ввода. Если установлено, x должно быть None.
batch_size
Переопределение размера пакета по умолчанию.
as_iterable
Если True, возвращает итератор, который продолжает генерировать прогнозы для каждого примера до тех пор, пока ввод не исчерпается. Примечание: Входные данные должны завершаться, если вы хотите завершить итератор (например, убедитесь, что вы передаёте num_epochs=1, если вы используете что-то вроде read_batch_features).
Возвращает
Массив NumPy предсказанных оценок (или итератор предсказанных оценок, если as_iterable True). Если label_dimension == 1, форма выходных данных — [batch_size], в противном случае форма — [batch_size, label_dimension].
Метод работает как с простыми оценщиками, так и с вложенными объектами (такими как конвейеры). У первых параметры имеют вид <component>__<parameter>, чтобы было возможно обновлять каждый компонент вложенного объекта.