Spec-Zone.ru › PyTorch 1

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

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

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

hist (Тензор)

Пример::
>>> 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/1.13/generated/torch.histogramdd.html

Spec-Zone.ru

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