Spec-Zone.ru › TensorFlow 1.15

tf.estimator.experimental.KMeans

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

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

Просмотр псевдонимов

Псевдонимы для миграции

См. Руководство по миграции для получения дополнительной информации.

tf.compat.v1.estimator.experimental.KMeans

tf.estimator.experimental.KMeans(
    num_clusters, model_dir=None, initial_clusters=RANDOM_INIT,
    distance_metric=SQUARED_EUCLIDEAN_DISTANCE, seed=None, 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.train.limit_epochs(
      tf.convert_to_tensor(points, dtype=tf.float32), num_epochs=1)

num_clusters = 5
kmeans = tf.estimator.experimental.KMeans(
    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_saved_model не включает центры кластеров. Однако центры кластеров можно получить из последнего контрольного пункта, сохранённого во время обучения. В частности,

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)\).
  • seed Целое число Python. Зерно для PRNG, используемого для инициализации центров.
    use_mini_batch Булево значение, определяющее, использовать ли алгоритм mini-batch k-means. См. объяснение выше.
    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.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 для получения признаков и меток Tensors. Далее, этот метод вызывает Estimator's 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, указывающий, какая сигнатура будет использоваться, если в запросе не указана конкретная.

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

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

    Аргументы
    export_dir_base Строка, содержащая директорию, в которой будут создаваться временные поддиректории, содержащие экспортированные SavedModelы.
    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 (по умолчанию), выбирается последний найденный чекпоинт в директории модели.
    Возвращаемое значение
    Строка пути к экспортированной директории.
    Исключения
    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's 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 для полной документации.

    Аргументы
    export_dir_base Строка, содержащая директорию, в которой будут создаваться временные поддиректории, содержащие экспортированные SavedModelы.
    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, указывающее, какой режим будет экспортирован. Обратите внимание, что эта функция экспериментальная.
    Возвращаемое значение
    Строка пути к экспортированной директории.
    Исключения
    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's 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'}.

    Аргументы
    export_dir_base Строка, содержащая директорию, в которой будут создаваться временные поддиректории, содержащие экспортированные SavedModelы.
    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, атрибуты с значениями по умолчанию будут удалены из NodeDefов. Для подробного руководства, см. Удаление атрибутов с значениями по умолчанию.
    Возвращаемое значение
    Строка пути к экспортированной директории.
    Возбуждает
    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/estimator/experimental/KMeans

    Spec-Zone.ru

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