Spec-Zone.ru › TensorFlow 2.3

tf.compat.v1.estimator.experimental.KMeans

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

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

tf.compat.v1.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.compat.v1.train.limit_epochs(
      tf.convert_to_tensor(points, dtype=tf.float32), num_epochs=1)

num_clusters = 5
kmeans = tf.compat.v1.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-средних. См. объяснение выше.
    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 для получения признаков и меток Tensor . Затем этот метод вызывает 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, указывающий, какая сигнатура будет использована, если при запросе на обслуживание сигнатура не указана. Для каждой сигнатуры выходные данные предоставляются соответствующими объектами 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'}.

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

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

    Аргументы
    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. Для получения подробного руководства см. Удаление атрибутов со значениями по умолчанию.
    Возвращаемые значения
    Путь к экспортированному каталогу в виде объекта типа bytes.
    Исключения
    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/r2.3/api_docs/python/tf/compat/v1/estimator/experimental/KMeans

    Spec-Zone.ru

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