ЭТОТ КЛАСС УСТАНОВЛЕН КАК УСТАРЕВШИЙ. Обратитесь к contrib/learn/README.md для общих инструкций по миграции.
Примечание: Новые пользователи должны установить 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 = DNNLinearCombinedClassifier(
# common settings
n_classes=n_classes,
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.AdagradOptimizer(...))
# Input builders
def input_fn_train: # returns x, y (where y represents label's class index).
...
def input_fn_eval: # returns x, y (where y represents label's class index).
...
def input_fn_predict: # returns x, None.
...
estimator.fit(input_fn=input_fn_train)
estimator.evaluate(input_fn=input_fn_eval)
# predict_classes returns class indices.
estimator.predict_classes(input_fn=input_fn_predict)
Если пользователь указывает label_keys в конструкторе, метки должны быть строками из label_keys словаря. Пример:
label_keys = ['label0', 'label1', 'label2']
estimator = DNNLinearCombinedClassifier(
n_classes=n_classes,
linear_feature_columns=[sparse_feature_a_x_sparse_feature_b],
dnn_feature_columns=[sparse_feature_a_emb, sparse_feature_b_emb],
dnn_hidden_units=[1000, 500, 100],
label_keys=label_keys)
def input_fn_train: # returns x, y (where y is one of label_keys).
pass
estimator.fit(input_fn=input_fn_train)
def input_fn_eval: # returns x, y (where y is one of label_keys).
pass
estimator.evaluate(input_fn=input_fn_eval)
def input_fn_predict: # returns x, None
# predict_classes returns one of label_keys.
estimator.predict_classes(input_fn=input_fn_predict)
Входные данные fit и evaluate должны иметь следующие характеристики, в противном случае возникнет KeyError:
если weight_column_name не None, признак с key=weight_column_name, значение которого является Tensor.
для каждого column в dnn_feature_columns + linear_feature_columns:
если column является SparseColumn, признак с key=column.name, значение которого является SparseTensor.
если column является WeightedSparseColumn, два признака: первый с key именем столбца id, второй с key именем столбца веса. Значения обоих признаков должны быть SparseTensor.
если column является RealValuedColumn, a feature withkey=column.namewhosevalueis aTensor`.
Аргументы
model_dir
Директория для сохранения параметров модели, графа и т. д. Это также можно использовать для загрузки контрольных точек из директории в оценщик для продолжения обучения ранее сохранённой модели.
n_classes
Количество классов меток. По умолчанию используется бинарная классификация. Обратите внимание, что метки классов являются целыми числами, представляющими индекс класса (т. е. значения от 0 до n_classes-1). Для произвольных значений меток (например, строковых меток) сначала преобразуйте их в индексы классов.
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, оценщик обучит смещённую переменную для каждого класса. Остальная часть модели будет обучать остаток после центральной смещения.
config
Объект RunConfig для настройки параметров выполнения.
feature_engineering_fn
Функция обработки признаков. Принимает признаки и метки, которые являются результатом input_fn, и возвращает признаки и метки, которые будут поданы в модель.
embedding_lr_multipliers
Необязательно. Словарь из EmbeddingColumn к множителю float. Множитель будет использоваться для умножения на скорость обучения для переменных вложения.
input_layer_min_slice_size
Необязательно. Минимальный размер разбиения входного слоя. Если не указано, будет использовано значение по умолчанию 64 МБ.
label_keys
Необязательный список строк с размером [n_classes], определяющий словарь меток. Поддерживается только для n_classes > 2.
fix_global_step_increment_bug
Если False, оценщик нуждается в двух шагах подгонки для оптимизации линейной и dnn частей. Если True, эта ошибка исправлена. Новые пользователи должны установить это значение в True, но значение по умолчанию составляет False для обратной совместимости.
Исключения
ValueError
Если n_classes < 2.
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_classes.
Аргументы
x
признаки.
input_fn
Функция ввода. Если задано, x должен быть None.
batch_size
Переопределение размера пакета по умолчанию.
outputs
список str, имя выходного значения для предсказания. Если None, возвращает классы.
as_iterable
Если True, возвращает итерируемый объект, который продолжает генерировать прогнозы для каждого примера, пока входные данные не будут исчерпаны. Примечание: Входные данные должны завершиться, если вы хотите, чтобы итерируемый объект завершился (например, убедитесь, что передали num_epochs=1, если используете что-то вроде read_batch_features).
Возвращает
Массив NumPy предсказанных классов с формой размер_пакета. Каждый предсказанный класс представлен своим индексом класса (т.е. целое число от 0 до n_classes-1). Если outputs задано, возвращает словарь прогнозов.
Возвращает предсказанные классы для заданных признаков. (устаревшие значения аргументов)
Аргументы
x
признаки.
input_fn
Функция ввода. Если задано, x должен быть None.
batch_size
Переопределение размера пакета по умолчанию.
as_iterable
Если True, возвращает итерируемый объект, который продолжает генерировать прогнозы для каждого примера, пока входные данные не будут исчерпаны. Примечание: Входные данные должны завершиться, если вы хотите, чтобы итерируемый объект завершился (например, убедитесь, что передали num_epochs=1, если используете что-то вроде read_batch_features).
Возвращает
Массив NumPy предсказанных классов с формой размер_пакета. Каждый предсказанный класс представлен своим индексом класса (т.е. целое число от 0 до n_classes-1).
Возвращает вероятности прогнозов для заданных признаков. (устаревшие значения аргументов)
Аргументы
x
features.
input_fn
Функция ввода. Если установлено, x и y должны быть None.
batch_size
Переопределение размера пакета по умолчанию.
as_iterable
Если True, возвращает итератор, который продолжает выдавать предсказания для каждого примера, пока входные данные не будут исчерпаны. Примечание: входные данные должны завершиться, если вы хотите, чтобы итератор завершился (например, убедитесь, что передали num_epochs=1, если используете что-то вроде read_batch_features).
Метод работает как с простыми оценщиками, так и со вложенными объектами (такими как конвейеры). У первых параметры имеют вид <component>__<parameter>, чтобы можно было обновлять каждый компонент вложенного объекта.