Spec-Zone.ru › PyTorch 2

torch.histogramdd

torch.histogramdd(input, bins, *, range=None, weight=None, density=False, out=None) -> (Tensor, Tensor[])

Вычисляет многомерную гистограмму значений в тензоре.

Интерпретирует элементы входного тензора, у которого внутреннее измерение имеет размер N, как набор N-мерных точек. Картирует каждую из точек в набор N-мерных ячеек и возвращает количество точек (или суммарный вес) в каждой ячейке.

input должен быть тензором с как минимум 2 измерениями. Если входной тензор имеет форму (M, N), каждая из его M строк определяет точку в N-мерном пространстве. Если входной тензор имеет три или более измерения, все измерения, кроме последнего, сглаживаются.

Каждое измерение независимо ассоциировано со своей собственной строго возрастающей последовательностью границ ячеек. Границы ячеек можно явно указать, передав последовательность 1D тензоров. В качестве альтернативы, границы ячеек можно построить автоматически, передав последовательность целых чисел, определяющих количество ячеек равной ширины в каждом измерении.

Для каждой N-мерной точки во входном тензоре:
  • Каждая ее координата независимо размещается в ячейках среди границ ячеек

    соответствующего измерения

  • Результаты размещения комбинируются, чтобы определить N-мерную ячейку (если есть)

    в которую попадает точка

  • Если точка попадает в ячейку, счетчик (или суммарный вес) ячейки увеличивается
  • Точки, которые не попадают ни в одну ячейку, не влияют на вывод

bins может быть последовательностью N 1D тензоров, последовательностью N целых чисел или одним целым числом.

Если bins является последовательностью N 1D тензоров, он явно определяет N последовательностей границ ячеек. Каждый 1D тензор должен содержать строго возрастающую последовательность с как минимум одним элементом. Последовательность из K границ ячеек определяет K-1 ячейку, явно определяя левую и правую границы всех ячеек. Каждая ячейка не включает свою левую границу. Только самая правая ячейка включает свою правую границу.

Если bins является последовательностью N целых чисел, она определяет количество ячеек равной ширины в каждом измерении. По умолчанию левая и правая границы ячеек в каждом измерении определяются минимальным и максимальным элементами входного тензора в соответствующем измерении. Аргумент range можно использовать для ручного указания левых и правых границ ячеек в каждом измерении.

Если bins является целым числом, оно определяет количество ячеек равной ширины для всех измерений.

Примечание

См. также torch.histogram(), который специально вычисляет 1D гистограммы. В то время как torch.histogramdd() определяет размерность своих ячеек и значений из формы input, torch.histogram() принимает и сглаживает input любой формы.

Параметры
  • input (Tensor) – входной тензор.
  • bins – Tensor[], int[], или int. Если Tensor[], определяет последовательности границ ячеек. Если int[], определяет количество ячеек равной ширины в каждом измерении. Если int, определяет количество ячеек равной ширины для всех измерений.
Ключевые аргументы
  • range (последовательностьfloat) – Определяет левую и правую границы ячеек в каждом измерении.
  • weight (Tensor) – По умолчанию каждый элемент во входном тензоре имеет вес 1. Если передан тензор весов, каждая N-мерная координата во входном тензоре вносит свой связанный вес в результат ячейки. Тензор весов должен иметь ту же форму, что и input тензор, за исключением внутреннего измерения N.
  • density (bool) – Если False (по умолчанию), результат будет содержать количество (или суммарный вес) в каждой ячейке. Если True, каждое количество (вес) делится на общее количество (суммарный вес), затем делится на объем соответствующей ячейки.
Возвращает

N-мерный тензор, содержащий значения гистограммы. bin_edges(Tensor[]): последовательность N 1D тензоров, содержащих границы ячеек.

Тип возвращаемого значения

hist (Tensor)

Пример::
>>> torch.histogramdd(torch.tensor([[0., 1.], [1., 0.], [2., 0.], [2., 2.]]), bins=[3, 3],
...                   weight=torch.tensor([1., 2., 4., 8.]))
    torch.return_types.histogramdd(
        hist=tensor([[0., 1., 0.],
                     [2., 0., 0.],
                     [4., 0., 8.]]),
        bin_edges=(tensor([0.0000, 0.6667, 1.3333, 2.0000]),
                   tensor([0.0000, 0.6667, 1.3333, 2.0000])))
>>> torch.histogramdd(torch.tensor([[0., 0.], [1., 1.], [2., 2.]]), bins=[2, 2],
...                   range=[0., 1., 0., 1.], density=True)
    torch.return_types.histogramdd(
       hist=tensor([[2., 0.],
                    [0., 2.]]),
       bin_edges=(tensor([0.0000, 0.5000, 1.0000]),
                  tensor([0.0000, 0.5000, 1.0000])))

© 2024, PyTorch Contributors
PyTorch has a BSD-style license, as found in the LICENSE file.
https://pytorch.org/docs/2.1/generated/torch.histogramdd.html

Spec-Zone.ru

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