Spec-Zone.ru › TensorFlow 1.15

tf.contrib.factorization.WALSMatrixFactorization

Оценщик для взвешенной матричной факторизации, используя метод WALS.

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

tf.contrib.factorization.WALSMatrixFactorization(
    num_rows, num_cols, embedding_dimension, unobserved_weight=0.1,
    regularization_coeff=None, row_init='random', col_init='random',
    num_row_shards=1, num_col_shards=1, row_weights=1, col_weights=1,
    use_factors_weights_cache_for_training=True,
    use_gramian_cache_for_training=True, max_sweeps=None, model_dir=None,
    config=None
)

WALS (взвешенное альтернативное наименьшее квадратичное приближение) — алгоритм для взвешенной матричной факторизации. Он вычисляет приближение низкого ранга заданной разреженной (n x m) матрицы A, умножением двух матриц, U * V^T, где U — это (n x k) матрица, а V — (m x k) матрица. Здесь k — ранг приближения, также называемый размерностью вложения. Мы называем U строчными факторами, а V — столбцовыми факторами. См. tensorflow/contrib/factorization/g3doc/wals.md для точного определения задачи.

Обучение происходит циклами: в строчном цикле мы фиксируем V и решаем для U. В столбцовом цикле мы фиксируем U и решаем для V. Каждая из этих задач является задачей безусловной минимизации квадратичной функции и может быть решена точно (ее также можно решить по мини-пакетно, так как решение декомпозируется по строкам каждой матрицы). Переключение между циклами достигается с помощью крючка во время обучения, который отвечает за отслеживание циклов и запуск операций подготовки в начале каждого цикла. Он также обновляет переменную global_step, которая отслеживает количество обработанных пакетов с начала обучения. Текущая реализация предполагает, что обучение выполняется на одной машине, и завершится неудачно, если config.num_worker_replicas не равно единице. Обучение выполняется вызовом self.fit(input_fn=input_fn), где input_fn предоставляет два тензора: один для строк входной матрицы и один для строк транспонированной входной матрицы (т.е. столбцов исходной матрицы). Обратите внимание, что во время строчного цикла обрабатываются только строчные пакеты (игнорируя столбцовые пакеты) и наоборот. Также обратите внимание, что каждая строка (соответственно каждый столбец) входной матрицы должна быть обработана хотя бы один раз, чтобы цикл считался завершенным. В частности, обучение не будет продвигаться, если некоторые строки не сгенерированы input_fn.

Для предсказания, учитывая новый набор входных строк A', мы вычисляем соответствующий набор строчных факторов U', таких, что U' * V^T является хорошим приближением A'. Мы называем эту операцию проекцией строки. Аналогичная операция определена для столбцов. Проекция выполняется путем вызова self.get_projections(input_fn=input_fn), где input_fn удовлетворяет ограничениям, приведенным ниже.

Функции ввода должны удовлетворять следующим ограничениям: Вызов input_fn должен возвращать кортеж (features, labels), где labels равно None, а features — словарь, содержащий следующие ключи:

TRAIN:

  • WALSMatrixFactorization.INPUT_ROWS: float32 SparseTensor (матрица). Строки входной матрицы для обработки (или для проекции).
  • WALSMatrixFactorization.INPUT_COLS: float32 SparseTensor (матрица). Столбцы входной матрицы для обработки (или для проекции), транспонированные.

INFER:

  • WALSMatrixFactorization.INPUT_ROWS: float32 SparseTensor (матрица). Строки для проекции.
  • WALSMatrixFactorization.INPUT_COLS: float32 SparseTensor (матрица). Столбцы для проекции.
  • WALSMatrixFactorization.PROJECT_ROW: Булевый тензор. Нужно ли проектировать строки или столбцы.
  • WALSMatrixFactorization.PROJECTION_WEIGHTS (необязательно): float32 Tensor (вектор). Веса для использования в проекции.

EVAL:

  • WALSMatrixFactorization.INPUT_ROWS: float32 SparseTensor (матрица). Строки для проекции.
  • WALSMatrixFactorization.INPUT_COLS: float32 SparseTensor (матрица). Столбцы для проекции.
  • WALSMatrixFactorization.PROJECT_ROW: Булевый тензор. Нужно ли проектировать строки или столбцы.
Args
num_rows Общее количество строк для входной матрицы.
num_cols Общее количество столбцов для входной матрицы.
embedding_dimension Размерность для использования в факторах.
unobserved_weight Вес непроверенных элементов матрицы.
regularization_coeff Вес члена L2 регуляризации. По умолчанию None, в этом случае задача не регуляризована.
row_init Инициализатор строчного фактора. Должен быть:
  • Тензор: матрица строчного фактора инициализируется этим тензором,
  • Константа numpy,
  • "random": строки инициализируются с помощью нормального распределения.
col_init Инициализатор столбцового фактора. См. row_init.
num_row_shards Количество фрагментов для использования в строчных факторах.
num_col_shards Количество фрагментов для использования в столбцовых факторах.
row_weights Должен быть в одном из трех следующих форматов:
  • None: в этом случае вес каждого элемента — unobserved_weight, и задача упрощается до ALS. Обратите внимание, что в этом случае col_weights также должны быть установлены в «None».
  • Список списков неотрицательных скаляров в форме \([[w_0, w_1, ...], [w_k, ... ], [...]]\), где количество внутренних списков равно количеству фрагментов строчных факторов, а элементы в каждом внутреннем списке — это веса строк этого фрагмента. В этом случае, \(w_ij = unonbserved_weight + row_weights[i] * col_weights[j]\).
  • Неотрицательный скаляр: это значение используется для всех весов строк. Обратите внимание, что разрешено иметь row_weights как список, а col_weights как скаляр, или наоборот.
  • col_weights См. row_weights.
    use_factors_weights_cache_for_training Булево, хранятся ли факторы и веса на рабочих узлах до начала обновлений во время обучения. По умолчанию True. Обратите внимание, что кэширование отключено во время предсказания.
    use_gramian_cache_for_training Булево, хранятся ли Грамианы на рабочих узлах до начала обновлений во время обучения. По умолчанию True. Обратите внимание, что кэширование отключено во время предсказания.
    max_sweeps целое число, необязательно. Указывает количество циклов, для которых необходимо обучить модель, где цикл определяется как полное обновление всех строчных факторов (соответственно столбцовых факторов). Если steps или max_steps также указаны в model.fit(), обучение останавливается, когда выполняется любое из условий шагов или циклов.
    model_dir Директория для сохранения результатов модели и журналов.
    config Объект конфигурации. См. Estimator.
    Raises
    ValueError Если config.num_worker_replicas строго больше единицы. Текущая реализация поддерживает только запуск на одном рабочем узле.
    Attributes
    config
    model_dir Возвращает путь, в котором процесс оценки будет искать контрольные точки.
    model_fn Возвращает model_fn, привязанный к self.params.

    Методы

    evaluate

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

    evaluate(
        x=None, y=None, input_fn=None, feed_fn=None, batch_size=None, steps=None,
        metrics=None, name=None, checkpoint_path=None, hooks=None, log_progress=True
    )
    

    См. Evaluable. (аргументы устарели)

    Предупреждение: НЕКОТОРЫЕ АРГУМЕНТЫ УСТАРЕЛИ: (batch_size, x, y). Они будут удалены после 2016-12-01. Инструкции по обновлению: Оценщик отделен от интерфейса Scikit Learn, переместив его в отдельный класс SKCompat. Аргументы x, y и batch_size доступны только в классе SKCompat, Оценщик будет принимать только input_fn. Пример преобразования: est = Estimator(...) -> est = SKCompat(Estimator(...))
    Raises
    ValueError Если хотя бы один из x или y предоставлен, и хотя бы один из input_fn или feed_fn предоставлен. Или если metrics не None или dict.

    export

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

    export(
        export_dir, input_fn=export._default_input_fn, input_feature_key=None,
        use_deprecated_input_fn=True, signature_fn=None, prediction_key=None,
        default_batch_size=1, exports_to_keep=None, checkpoint_path=None
    )
    

    Экспортирует граф предсказания в заданную директорию. (устарело)

    Предупреждение: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена после 2017-03-25. Инструкции по обновлению: Используйте вместо этого Estimator.export_savedmodel().
    Аргументы
    export_dir Строка, содержащая путь к каталогу для записи экспортированной графы и контрольных точек.
    input_fn Если use_deprecated_input_fn равно true, то функция, которая, получив Tensor строк Example, анализирует их в признаки, которые затем передаются в модель. В противном случае функция, которая не принимает аргументов и возвращает кортеж (признаки, метки), где признаки — словарь строк-ключей к Tensor, а метки — Tensor, который в настоящее время не используется (и поэтому может быть None).
    input_feature_key Используется только если use_deprecated_input_fn равно false. Строковый ключ в словаре признаков, возвращаемом input_fn, который соответствует сырым Example строкам Tensor, которые будут приняты экспортированной моделью в качестве входных данных. Может быть только None, если вы используете пользовательскую signature_fn, которая не использует первый аргумент (примеры).
    use_deprecated_input_fn Определяет формат сигнатуры input_fn.
    signature_fn Функция, которая возвращает стандартную сигнатуру и карту именованных сигнатур, заданных Tensor строк Example, dict Tensor для признаков и Tensor или dict Tensor для прогнозов.
    prediction_key Ключ для тензора в словаре predictions (выходной результат model_fn), который нужно использовать в качестве входного значения predictions для signature_fn. Необязательно. Если None, прогнозы будут переданы signature_fn без фильтрации.
    default_batch_size Значение по умолчанию размера пакета Example заполнителя.
    exports_to_keep Количество сохраняемых экспортов.
    checkpoint_path Путь к контрольной точке модели, которую нужно экспортировать. Если это None (что является значением по умолчанию), будет использоваться последняя контрольная точка в export_dir.
    Возвращаемое значение
    Путь к строке экспортированного каталога. Примечание: эта функция была добавлена примерно 25.09.2016; клиентам, зависящим от возвращаемого значения, может потребоваться обработать случай, когда эта функция возвращает None, потому что подклассы не возвращают значение.

    export_savedmodel

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

    export_savedmodel(
        export_dir_base, serving_input_fn, default_output_alternative_key=None,
        assets_extra=None, as_text=False, checkpoint_path=None,
        graph_rewrite_specs=(GraphRewriteSpec((tag_constants.SERVING,), ()),),
        strip_default_attrs=False
    )
    

    Экспортирует график предсказания как 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") и без перезаписи.
    strip_default_attrs Булево значение. Если True, атрибуты с значениями по умолчанию будут удалены из NodeDefs. Подробное руководство см. в Удаление атрибутов со значениями по умолчанию.
    Возвращаемое значение
    Путь к строке экспортированного каталога.
    Исключения
    ValueError если запрошен неизвестный тип экспорта.

    fit

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

    fit(
        x=None, y=None, input_fn=None, steps=None, batch_size=None, monitors=None,
        max_steps=None
    )
    

    См. Trainable. (устаревшие аргументы)

    Предупреждение: НЕКОТОРЫЕ АРГУМЕНТЫ УСТАРЕЛИ: (batch_size, x, y). Они будут удалены после 01.12.2016. Инструкции по обновлению: Estimator отделен от интерфейса Scikit Learn, переместившись в отдельный класс SKCompat. Аргументы x, y и batch_size доступны только в классе SKCompat, Estimator будет принимать только input_fn. Пример преобразования: est = Estimator(...) -> est = SKCompat(Estimator(...))
    Исключения
    ValueError Если x или y не None , в то время как input_fn не None.
    ValueError Если оба steps и max_steps не None.

    get_col_factors

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

    get_col_factors()
    

    Возвращает факторы столбцов модели, загружая их из контрольной точки.

    Должен запускаться только после обучения.

    Возвращаемое значение
    Список факторов столбцов модели.

    get_params

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

    get_params(
        deep=True
    )
    

    Получить параметры для этого оценщика.

    Аргументы
    deep логическое значение, необязательно

    Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.

    Возвращаемое значение
    params сопоставление строки с любым Параметры имен, сопоставленных с их значениями.

    get_projections

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

    get_projections(
        input_fn
    )
    

    Вычисляет проекции строк или столбцов, заданных в input_fn.

    Выполняет predict() с заданным input_fn и возвращает результаты. Должен запускаться только после обучения.

    Аргументы
    input_fn Функция входных данных, которая определяет строки или столбцы для проекции.
    Возвращаемое значение
    Генератор спроектированных факторов.

    get_row_factors

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

    get_row_factors()
    

    Возвращает факторы строк модели, загружая их из контрольной точки.

    Должен запускаться только после обучения.

    Возвращаемое значение
    Список факторов строк модели.

    get_variable_names

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

    get_variable_names()
    

    Возвращает список всех имен переменных в этой модели.

    Возвращаемое значение
    Список имён.

    get_variable_value

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

    get_variable_value(
        name
    )
    

    Возвращает значение переменной, заданной по имени.

    Аргументы
    name строка, имя тензора.
    Возвращаемое значение
    Массив NumPy — значение тензора.

    partial_fit

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

    partial_fit(
        x=None, y=None, input_fn=None, steps=1, batch_size=None, monitors=None
    )
    

    Инкрементное обучение на пакете образцов. (устаревшие аргументы)

    Предупреждение: НЕКОТОРЫЕ АРГУМЕНТЫ УСТЕРЕЛИ: (batch_size, x, y). Они будут удалены после 2016-12-01. Инструкции по обновлению: Estimator отвязан от интерфейса Scikit Learn, переместившись в отдельный класс SKCompat. Аргументы x, y и batch_size доступны только в классе SKCompat, Estimator будет принимать только input_fn. Пример преобразования: est = Estimator(...) -> est = SKCompat(Estimator(...))

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

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

    Аргументы
    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 также предоставлен.

    predict

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

    predict(
        x=None, input_fn=None, batch_size=None, outputs=None, as_iterable=True,
        iterate_batches=False
    )
    

    Возвращает прогнозы для заданных признаков. (устаревшие аргументы)

    Предупреждение: НЕКОТОРЫЕ АРГУМЕНТЫ УСТЕРЕЛИ: (as_iterable, batch_size, x). Они будут удалены после 2016-12-01. Инструкции по обновлению: Estimator отвязан от интерфейса Scikit Learn, переместившись в отдельный класс SKCompat. Аргументы x, y и batch_size доступны только в классе SKCompat, Estimator будет принимать только input_fn. Пример преобразования: est = Estimator(...) -> est = SKCompat(Estimator(...))
    Аргументы
    x Матрица формы [n_samples, n_features...]. Может быть итератором, возвращающим массивы признаков. Образцы входных данных для обучения модели. Если установлено, input_fn должно быть None.
    input_fn Функция ввода. Если установлено, x и 'batch_size' должны быть None.
    batch_size Переопределённый размер пакета. Если установлено, 'input_fn' должно быть 'None'.
    outputs Список str, имя выходного значения для прогноза. Если None, возвращает все.
    as_iterable Если True, возвращает итератор, который продолжает предоставлять прогнозы для каждого примера до тех пор, пока ввод не закончится. Примечание: ввод должен завершиться, если вы хотите завершить итератор (например, убедитесь, что передали num_epochs=1, если используете что-то вроде read_batch_features).
    iterate_batches Если True, выводит весь пакет сразу вместо разбиения пакета на отдельные образцы. Релевантно только когда as_iterable True.
    Возвращаемое значение
    Массив NumPy предсказанных классов или регрессионных значений, если конструктор model_fn возвращает Tensor для predictions или массив NumPy массивов, если model_fn возвращает dict. Возвращает итератор прогнозов, если as_iterable True.
    Исключения
    ValueError Если x и input_fn оба предоставлены или оба None.

    set_params

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

    set_params(
        **params
    )
    

    Устанавливает параметры этого оценщика.

    Метод работает как с простыми оценщиками, так и со вложенными объектами (например, с конвейерами). Первые имеют параметры вида <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

    Аргументы
    **params Параметры.
    Возвращаемое значение
    self
    Исключения
    ValueError Если params содержат недопустимые имена.

    Переменные класса

    • COMPLETED_SWEEPS = 'completed_sweeps'
    • INPUT_COLS = 'input_cols'
    • INPUT_ROWS = 'input_rows'
    • LOSS = 'WALS_loss'
    • PROJECTION_RESULT = 'projection'
    • PROJECTION_WEIGHTS = 'projection_weights'
    • PROJECT_ROW = 'project_row'
    • RWSE = 'WALS_RWSE'

    © 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/contrib/factorization/WALSMatrixFactorization

    Spec-Zone.ru

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