Spec-Zone.ru › TensorFlow 1.15

tf.contrib.factorization.KMeansClustering

Оценщик для кластеризации K-средних.

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

tf.contrib.factorization.KMeansClustering(
    num_clusters, model_dir=None, initial_clusters=RANDOM_INIT,
    distance_metric=SQUARED_EUCLIDEAN_DISTANCE, random_seed=0, use_mini_batch=True,
    mini_batch_steps_per_iteration=1, kmeans_plus_plus_num_retries=2,
    relative_tolerance=None, config=None, feature_columns=None
)

Пример:

import numpy as np
import tensorflow as tf

num_points = 100
dimensions = 2
points = np.random.uniform(0, 1000, [num_points, dimensions])

def input_fn():
  return tf.compat.v1.train.limit_epochs(
      tf.convert_to_tensor(points, dtype=tf.float32), num_epochs=1)

num_clusters = 5
kmeans = tf.contrib.factorization.KMeansClustering(
    num_clusters=num_clusters, use_mini_batch=False)

# train
num_iterations = 10
previous_centers = None
for _ in xrange(num_iterations):
  kmeans.train(input_fn)
  cluster_centers = kmeans.cluster_centers()
  if previous_centers is not None:
    print 'delta:', cluster_centers - previous_centers
  previous_centers = cluster_centers
  print 'score:', kmeans.score(input_fn)
print 'cluster centers:', cluster_centers

# map the input points to their clusters
cluster_indices = list(kmeans.predict_cluster_index(input_fn))
for i, point in enumerate(points):
  cluster_index = cluster_indices[i]
  center = cluster_centers[cluster_index]
  print 'point:', point, 'is in cluster', cluster_index, 'centered at', center

Сохранённые SavedModel методом export_savedmodel не включают центры кластеров. Однако, центры кластеров можно получить из последнего контрольного пункта, сохранённого во время обучения. В частности,

kmeans.cluster_centers()

эквивалентно

tf.train.load_variable(
    kmeans.model_dir, KMeansClustering.CLUSTER_CENTERS_VAR_NAME)
Аргументы
num_clusters Целочисленный тензор, определяющий количество кластеров. Этот аргумент игнорируется, если initial_clusters является тензором или массивом NumPy.
model_dir Каталог для сохранения результатов модели и журналов.
initial_clusters Указывает, как выбираются начальные центры кластеров. Один из следующих вариантов: * тензор или массив NumPy с начальными центрами кластеров. * вызываемый f(inputs, k) метод, который выбирает и возвращает до k центров из входной выборки. f может свободно возвращать любое количество центров от 0 до k. Он будет вызываться на последующих входных выборках по мере необходимости, пока все num_clusters центров не будут выбраны.
  • KMeansClustering.RANDOM_INIT: Случайно выбирает центры из входной выборки. Если размер выборки меньше num_clusters, вся выборка выбирается в качестве начальных центров кластеров, а оставшиеся центры выбираются из последующих входных выборок.
  • KMeansClustering.KMEANS_PLUS_PLUS_INIT: Использует kmeans++ для выбора центров из первой входной выборки. Если размер выборки меньше num_clusters, возникает ошибка выполнения TensorFlow.
distance_metric Метрика расстояния, используемая для кластеризации. Один из следующих вариантов:
  • KMeansClustering.SQUARED_EUCLIDEAN_DISTANCE: Расстояние Евклида между векторами u и v определяется как (||u - v||_2), что является квадратным корнем из суммы квадратов абсолютных разностей элементов.
  • KMeansClustering.COSINE_DISTANCE: Косинусное расстояние между векторами u и v определяется как (1 - (u . v) / (||u||_2 ||v||_2)).
  • random_seed Целое число Python. Зерно для генератора псевдослучайных чисел, используемого для инициализации центров.
    use_mini_batch Логическое значение, определяющее, использовать ли алгоритм mini-batch k-средних. См. объяснение выше.
    mini_batch_steps_per_iteration Количество шагов, после которых обновлённые центры кластеров синхронизируются обратно с основной копией. Используется только если use_mini_batch=True. См. объяснение выше.
    kmeans_plus_plus_num_retries Для каждой точки, которая выборки во время инициализации kmeans++, этот параметр определяет количество дополнительных точек, которые нужно выбрать из текущего распределения перед выбором лучшей. Если указано отрицательное значение, используется эвристика для выборки O(log(num_to_sample)) дополнительных точек. Используется только если initial_clusters=KMeansClustering.KMEANS_PLUS_PLUS_INIT.
    relative_tolerance Относительная толерантность изменения потери между итерациями. Останавливает обучение, если изменение потерь меньше этого значения. Это может не работать корректно, если use_mini_batch=True.
    config См. tf.estimator.Estimator.
    feature_columns Необязательное итерируемое множество, содержащее все столбцы признаков, используемые моделью. Все элементы набора должны быть экземплярами столбцов признаков, которые могут передаваться в tf.compat.v1.feature_column.input_layer. Если это None, будут использоваться все признаки.
    Исключения
    ValueError В initial_clusters или distance_metric был передан недопустимый аргумент.
    Атрибуты
    config
    model_dir
    model_fn Возвращает model_fn, связанный с self.params.
    params

    Методы

    cluster_centers

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

    cluster_centers()
    

    Возвращает центры кластеров.

    eval_dir

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

    eval_dir(
        name=None
    )
    

    Показывает имя каталога, куда сохраняются метрики оценки.

    Аргументы
    name Имя оценки, если пользователю нужно выполнить несколько оценок на разных наборах данных, например, на обучающих и тестовых данных. Метрики для разных оценок сохраняются в отдельных папках и отображаются отдельно в TensorBoard.
    Возвращает
    Строка, представляющая путь к каталогу с метриками оценки.

    evaluate

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

    evaluate(
        input_fn, steps=None, hooks=None, checkpoint_path=None, name=None
    )
    

    Вычисляет оценку модели на заданных данных оценки input_fn.

    На каждом шаге вызывает input_fn, которая возвращает одну партию данных. Вычисляет оценку до тех пор, пока:

    • steps выборок будут обработаны, или
    • input_fn сгенерирует исключение конца ввода (tf.errors.OutOfRangeError или StopIteration).
    Аргументы
    input_fn Функция, создающая входные данные для оценки. См. Предопределённые оценщики для получения дополнительной информации. Функция должна создавать и возвращать один из следующих вариантов: * Объект tf.data.Dataset: Выходы объекта Dataset должны быть кортежем (features, labels) с теми же ограничениями, что и ниже. * Кортеж (features, labels): где features является tf.Tensor или словарем имен признаков типа строка к Tensor, и labels является Tensor или словарем имен меток типа строка к Tensor. Как features так и labels используются в model_fn. Они должны соответствовать ожиданиям от входных данных model_fn .
    steps Количество шагов для оценки модели. Если None, оценивает до тех пор, пока input_fn не сгенерирует исключение конца ввода.
    hooks Список подклассов tf.train.SessionRunHook. Используется для обратного вызова внутри вызова оценки.
    checkpoint_path Путь к конкретному контрольному пункту для оценки. Если None, используется последний контрольный пункт в model_dir. Если контрольных пунктов в model_dir нет, оценка выполняется с вновь инициализированными Variables вместо восстановленных из контрольного пункта.
    name Имя оценки, если пользователю нужно выполнить несколько оценок на разных наборах данных, например, на обучающих и тестовых данных. Метрики для разных оценок сохраняются в отдельных папках и отображаются отдельно в TensorBoard.
    Возвращает
    Словарь, содержащий метрики оценки, указанные в model_fn, с ключами по имени, а также запись global_step, содержащую значение глобального шага, для которого была выполнена эта оценка. Для предопределённых оценщиков словарь содержит loss (средняя потеря на мини-выборку) и average_loss (средняя потеря на пример). Предопределённые классификаторы также возвращают accuracy. Предопределённые регрессоры также возвращают label/mean и prediction/mean.
    Исключения
    ValueError Если steps <= 0.

    experimental_export_all_saved_models

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

    experimental_export_all_saved_models(
        export_dir_base, input_receiver_fn_map, assets_extra=None, as_text=False,
        checkpoint_path=None
    )
    

    Экспортирует SavedModel с tf.MetaGraphDefs для каждого запрошенного режима.

    Для каждого режима, переданного через input_receiver_fn_map, этот метод строит новую диаграмму, вызывая input_receiver_fn для получения признаков и меток Tensor . Затем этот метод вызывает Estimator метод model_fn в переданном режиме для создания графа модели на основе этих признаков и меток, и восстанавливает заданный контрольный пункт (или, при его отсутствии, последний контрольный пункт) в графе. Только один из режимов используется для сохранения переменных в SavedModel (порядок предпочтения: tf.estimator.ModeKeys.TRAIN, tf.estimator.ModeKeys.EVAL, затем tf.estimator.ModeKeys.PREDICT), таким образом, до трёх tf.MetaGraphDefs сохраняются с одной группой переменных в одном каталоге SavedModel.

    Для переменных и tf.MetaGraphDefs создаётся каталог экспорта с отметкой времени под export_dir_base, и записывается SavedModel в него, содержащий tf.MetaGraphDef для заданного режима и его связанных подписей.

    Для прогнозирования экспортированный MetaGraphDef предоставит по одному SignatureDef для каждого элемента словаря export_outputs, возвращаемого model_fn, используя те же ключи. Один из этих ключей всегда tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY, указывающий, какая сигнатура будет использована, если в запросе предоставления не указана сигнатура. Для каждой сигнатуры выходные данные предоставляются соответствующими tf.estimator.export.ExportOutput, а входные данные всегда — это получатели входных данных, предоставляемые serving_input_receiver_fn.

    Для обучения и оценки train_op хранится в дополнительном наборе, а потери, метрики и прогнозы включаются в SignatureDef для соответствующего режима.

    Дополнительные ресурсы могут быть записаны в SavedModel с помощью аргумента assets_extra. Это должен быть словарь, где каждый ключ задает путь к пункту назначения (включая имя файла) относительно директории assets.extra. Соответствующее значение указывает полный путь исходного файла, который нужно скопировать. Например, простой случай копирования одного файла без переименования задается как {'my_asset_file.txt': '/path/to/my_asset_file.txt'}.

    Args
    export_dir_base Строка, содержащая директорию, в которой будут созданы поддиректории со временем создания, содержащие экспортированные SavedModels.
    input_receiver_fn_map Словарь из tf.estimator.ModeKeys к input_receiver_fn соответствиям, где input_receiver_fn — это функция, которая не принимает аргументов и возвращает соответствующий подкласс InputReceiver.
    assets_extra Словарь, определяющий способ заполнения директории assets.extra в экспортированном SavedModel, или None если дополнительные ресурсы не нужны.
    as_text Нужно ли записывать прото SavedModel в текстовом формате.
    checkpoint_path Путь к контрольной точке для экспорта. Если None (по умолчанию), выбирается самая последняя контрольная точка, найденная в директории модели.
    Returns
    Строка пути к экспортированной директории.
    Raises
    ValueError если какой-либо input_receiver_fn является None, не предоставлены export_outputs или не найдена контрольная точка.

    export_saved_model

    Просмотр исходного кода

    export_saved_model(
        export_dir_base, serving_input_receiver_fn, assets_extra=None, as_text=False,
        checkpoint_path=None, experimental_mode=ModeKeys.PREDICT
    )
    

    Экспортирует график инференции как SavedModel в заданную директорию.

    Для подробного руководства см. Использование SavedModel с Estimators.

    Этот метод строит новый граф, сначала вызвав serving_input_receiver_fn для получения признаков Tensor, а затем вызвав Estimator метода model_fn для генерации графа модели на основе этих признаков. Он восстанавливает заданную контрольную точку (или, если она отсутствует, самую последнюю контрольную точку) в этом графе в новой сессии. В заключение он создает директорию экспорта с указанным временем создания ниже заданной export_dir_base, и записывает в неё SavedModel с одной сохраненной из этой сессии tf.MetaGraphDef.

    Экспортированный MetaGraphDef предоставит по одному SignatureDef для каждого элемента словаря export_outputs, возвращаемого model_fn, используя те же ключи. Один из этих ключей всегда tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY, указывающий, какая сигнатура будет использована, если в запросе предоставления не указана сигнатура. Для каждой сигнатуры выходные данные предоставляются соответствующими tf.estimator.export.ExportOutput, а входные данные всегда — это получатели входных данных, предоставляемые serving_input_receiver_fn.

    Дополнительные ресурсы могут быть записаны в SavedModel с помощью аргумента assets_extra. Это должен быть словарь, где каждый ключ задает путь к пункту назначения (включая имя файла) относительно директории assets.extra. Соответствующее значение указывает полный путь исходного файла, который нужно скопировать. Например, простой случай копирования одного файла без переименования задается как {'my_asset_file.txt': '/path/to/my_asset_file.txt'}.

    Параметр experimental_mode может быть использован для экспорта одного графика обучения/оценки/прогнозирования как SavedModel. См. experimental_export_all_saved_models для полной документации.

    Args
    export_dir_base Строка, содержащая директорию, в которой будут созданы поддиректории со временем создания, содержащие экспортированные SavedModels.
    serving_input_receiver_fn Функция, которая не принимает аргументов и возвращает tf.estimator.export.ServingInputReceiver или tf.estimator.export.TensorServingInputReceiver.
    assets_extra Словарь, определяющий способ заполнения директории assets.extra в экспортированном SavedModel, или None если дополнительные ресурсы не нужны.
    as_text Нужно ли записывать прото SavedModel в текстовом формате.
    checkpoint_path Путь к контрольной точке для экспорта. Если None (по умолчанию), выбирается самая последняя контрольная точка, найденная в директории модели.
    experimental_mode Значение tf.estimator.ModeKeys, указывающее, какой режим будет экспортирован. Обратите внимание, что эта функция находится в стадии разработки.
    Returns
    Строка пути к экспортированной директории.
    Raises
    ValueError если не предоставлен serving_input_receiver_fn, не предоставлены export_outputs или не найдена контрольная точка.

    export_savedmodel

    Просмотр исходного кода

    export_savedmodel(
        export_dir_base, serving_input_receiver_fn, assets_extra=None, as_text=False,
        checkpoint_path=None, strip_default_attrs=False
    )
    

    Экспортирует график инференции как SavedModel в заданную директорию. (устаревший)

    Предупреждение: ЭТА ФУНКЦИЯ УСТАРЕЛА. Она будет удалена в будущей версии. Инструкции по обновлению: Эта функция переименована, используйте export_saved_model вместо нее.

    Для подробного руководства см. Использование SavedModel с Estimators.

    Этот метод строит новый граф, сначала вызвав serving_input_receiver_fn для получения признаков Tensor, а затем вызвав Estimator метода model_fn для генерации графа модели на основе этих признаков. Он восстанавливает заданную контрольную точку (или, если она отсутствует, самую последнюю контрольную точку) в этом графе в новой сессии. В заключение он создает директорию экспорта с указанным временем создания ниже заданной export_dir_base, и записывает в неё SavedModel с одной сохраненной из этой сессии tf.MetaGraphDef.

    Экспортированный MetaGraphDef предоставит по одному SignatureDef для каждого элемента словаря export_outputs, возвращаемого model_fn, используя те же ключи. Один из этих ключей всегда tf.saved_model.signature_constants.DEFAULT_SERVING_SIGNATURE_DEF_KEY, указывающий, какая сигнатура будет использована, если в запросе предоставления не указана сигнатура. Для каждой сигнатуры выходные данные предоставляются соответствующими tf.estimator.export.ExportOutput, а входные данные всегда — это получатели входных данных, предоставляемые serving_input_receiver_fn.

    Дополнительные ресурсы могут быть записаны в SavedModel с помощью аргумента assets_extra. Это должен быть словарь, где каждый ключ задает путь к пункту назначения (включая имя файла) относительно директории assets.extra. Соответствующее значение указывает полный путь исходного файла, который нужно скопировать. Например, простой случай копирования одного файла без переименования задается как {'my_asset_file.txt': '/path/to/my_asset_file.txt'}.

    Args
    export_dir_base Строка, содержащая директорию, в которой будут созданы поддиректории со временем создания, содержащие экспортированные SavedModels.
    serving_input_receiver_fn Функция, которая не принимает аргументов и возвращает tf.estimator.export.ServingInputReceiver или tf.estimator.export.TensorServingInputReceiver.
    assets_extra Словарь, определяющий способ заполнения директории assets.extra в экспортированном SavedModel, или None если дополнительные ресурсы не нужны.
    as_text Нужно ли записывать прото SavedModel в текстовом формате.
    checkpoint_path Путь к контрольной точке для экспорта. Если None (по умолчанию), выбирается самая последняя контрольная точка, найденная в директории модели.
    strip_default_attrs Булево значение. Если True, атрибуты с значениями по умолчанию будут удалены из NodeDefs. Для подробного руководства см. Удаление атрибутов с значениями по умолчанию.
    Returns
    Строка пути к экспортированной директории.
    Возвращает исключение
    ValueError если не предоставлен serving_input_receiver_fn, не предоставлены export_outputs, или чекпоинт не найден.

    get_variable_names

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

    get_variable_names()
    

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

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

    get_variable_value

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

    get_variable_value(
        name
    )
    

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

    Аргументы
    name строка или список строк, имя тензора.
    Возвращает
    Массив NumPy - значение тензора.
    Возвращает исключение
    ValueError если Estimator ещё не создал чекпоинт.

    latest_checkpoint

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

    latest_checkpoint()
    

    Находит имя файла последнего сохранённого чекпоинта в model_dir.

    Возвращает
    Полный путь к последнему чекпоинту или None, если чекпоинт не найден.

    predict

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

    predict(
        input_fn, predict_keys=None, hooks=None, checkpoint_path=None,
        yield_single_examples=True
    )
    

    Выполняет предсказания для заданных признаков.

    Обратите внимание, что переключение двух выходов predict не работает. См.: issue/20506

    Аргументы
    input_fn Функция, которая строит признаки. Предсказание продолжается до тех пор, пока input_fn не сгенерирует исключение конца ввода (tf.errors.OutOfRangeError или StopIteration). См. Предопределённые оценщики для получения дополнительной информации. Функция должна создавать и возвращать одно из следующего:
    • Объект tf.data.Dataset: Выходы объекта Dataset должны соответствовать нижеследующим ограничениям.
    • признаки: Тензор tf.Tensor или словарь из имени признака (строка) и значения признака (Tensor). Признаки потребляются model_fn. Они должны удовлетворять ожиданиям model_fn от входных данных.
    • Кортеж, в этом случае первая позиция извлекается в качестве признаков.
    predict_keys список str, имена ключей для предсказания. Используется, если tf.estimator.EstimatorSpec.predictions является dict. Если predict_keys используется, остальные предсказания будут отфильтрованы из словаря. Если None, возвращает все.
    hooks Список экземпляров подклассов tf.train.SessionRunHook. Используется для обратных вызовов внутри вызова предсказания.
    checkpoint_path Путь к конкретному чекпоинту для предсказания. Если None, используется последний чекпоинт в model_dir. Если в model_dir нет чекпоинтов, предсказание выполняется с только что инициализированными Variables вместо восстановленных из чекпоинта.
    yield_single_examples Если False, выдает весь пакет как возвращает model_fn вместо разбиения пакета на отдельные элементы. Это полезно, если model_fn возвращает некоторые тензоры, первая размерность которых не равна размеру пакета.

    Возвращает:

    Вычисленные значения тензоров predictions.

    Возвращает исключение
    ValueError если длина пакета предсказаний не одинаковая, а yield_single_examples является True.
    ValueError если есть конфликт между predict_keys и predictions. Например, если predict_keys не None, но tf.estimator.EstimatorSpec.predictions не является dict.

    predict_cluster_index

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

    predict_cluster_index(
        input_fn
    )
    

    Находит индекс ближайшего центра кластера для каждой входной точки.

    Аргументы
    input_fn Входные точки. См. tf.estimator.Estimator.predict.

    Возвращает:

    Индекс ближайшего центра кластера для каждой входной точки.

    score

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

    score(
        input_fn
    )
    

    Возвращает сумму квадратов расстояний до ближайших кластеров.

    Обратите внимание, что эта функция отличается от аналогичной функции в sklearn, которая возвращает отрицательную сумму.

    Аргументы
    input_fn Входные точки. См. tf.estimator.Estimator.evaluate. Извлекается только один пакет.
    Возвращает
    Сумма квадратов расстояний от каждой точки в первом пакете входных данных до ближайшего центра кластера.

    train

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

    train(
        input_fn, hooks=None, steps=None, max_steps=None, saving_listeners=None
    )
    

    Обучает модель с использованием обучающих данных input_fn.

    Аргументы
    input_fn Функция, которая предоставляет обучающие данные в виде мини-пакетов. См. Предопределённые оценщики для получения дополнительной информации. Функция должна создавать и возвращать одно из следующего:
    • Объект tf.data.Dataset: Выходы объекта Dataset должны быть кортежем (features, labels) с теми же ограничениями, что и ниже.
    • Кортеж (features, labels): где features является tf.Tensor или словарем имен признаков (строка) и значений признаков (Tensor) и labels является меткой Tensor или словарем имён меток (строка) и значений меток (Tensor). И features и labels потребляются model_fn. Они должны удовлетворять ожиданиям model_fn от входных данных.
    hooks Список экземпляров подклассов tf.train.SessionRunHook. Используется для обратных вызовов внутри цикла обучения.
    steps Количество шагов для обучения модели. Если None, обучается бесконечно или до тех пор, пока input_fn не сгенерирует ошибку tf.errors.OutOfRange или исключение StopIteration. steps работает инкрементально. Если вы вызываете train(steps=10) дважды, обучение происходит в общей сложности 20 шагов. Если OutOfRange или StopIteration произойдёт в середине, обучение прекратится до 20 шагов. Если вы не хотите иметь инкрементальное поведение, установите max_steps вместо этого. Если установлено, max_steps должен быть None.
    max_steps Общее количество шагов для обучения модели. Если None, обучается бесконечно или до тех пор, пока input_fn не сгенерирует ошибку tf.errors.OutOfRange или исключение StopIteration. Если установлено, steps должен быть None. Если OutOfRange или StopIteration произойдёт в середине, обучение прекратится до max_steps шагов. Два вызова train(steps=100) означают 200 итераций обучения. С другой стороны, два вызова train(max_steps=100) означают, что второй вызов не выполнит никаких итераций, так как первый вызов выполнил все 100 шагов.
    saving_listeners список объектов CheckpointSaverListener. Используется для обратных вызовов, которые выполняются непосредственно перед или после сохранения чекпоинта.
    Возвращает
    self, для цепочки.
    Возбуждает
    ValueError Если и steps и max_steps не являются None.
    ValueError Если либо steps либо max_steps <= 0.

    transform

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

    transform(
        input_fn
    )
    

    Преобразует каждую входную точку в её расстояния до всех центров кластеров.

    Обратите внимание, что если distance_metric=KMeansClustering.SQUARED_EUCLIDEAN_DISTANCE, эта функция возвращает квадрат расстояния Евклида, тогда как соответствующая функция sklearn возвращает расстояние Евклида.

    Аргументы
    input_fn Входные точки. См. tf.estimator.Estimator.predict.

    Возвращает:

    Расстояния от каждой входной точки до каждого центра кластера.

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

    • ALL_DISTANCES = 'all_distances'
    • CLUSTER_CENTERS_VAR_NAME = 'clusters'
    • CLUSTER_INDEX = 'cluster_index'
    • COSINE_DISTANCE = 'cosine'
    • KMEANS_PLUS_PLUS_INIT = 'kmeans_plus_plus'
    • RANDOM_INIT = 'random'
    • SCORE = 'score'
    • SQUARED_EUCLIDEAN_DISTANCE = 'squared_euclidean'

    © 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/KMeansClustering

    Spec-Zone.ru

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