Как я могу построить гистограмму дискретного распределения на тензорной доске?

Я использую tensorboard (tensorflow 1.1.0), чтобы показать результат моего классификатора CNN.

Я добавил некоторый выходной вектор как tf.summary.histogram, чтобы показать количество выходных данных в каждом бине, но tensorboard, похоже, автоматически вычисляет интерполяцию и показывает их как (каким-то образом) сглаженное распределение (и поэтому я не могу найти точные значения для баки).

Может ли кто-нибудь сказать мне, как я могу избежать интерполяции и отображать обычные гистограммы с использованием столбцов?


person nono    schedule 06.06.2017    source источник


Ответы (1)


Я не уверен, что есть простой способ сделать это.

Я очень не уверен в тексте ниже, поправьте меня, если я ошибаюсь.

Из этого файла https://github.com/tensorflow/tensorboard/blob/master/tensorboard/plugins/histogram/vz_histogram_timeseries/index.html кажется, что гистограмма приходит в tensorboard в двойных значениях. Сводная операция использует любую гистограмму из https://github.com/tensorflow/tensorflow/blob/r1.2/tensorflow/python/ops/histogram_ops.py (1) или https://github.com/tensorflow/tensorflow/blob/r1.2/tensorflow/core/lib/histogram/histogram.cc (2)

Я предполагаю, что он использует 2-й, потому что здесь https://github.com/tensorflow/tensorflow/blob/r1.2/tensorflow/python/summary/summary.py#L189 вызывает функцию из сгенерированного файла. В моем коде пакета в этом сгенерированном файле есть еще один вызов функции:

result = _op_def_lib.apply_op("HistogramSummary", tag=tag, values=values,
                              name=name) 

У меня есть grep all repo, и кажется, что нет другого кода Python, который определяет что-то с помощью «HistogramSummary», поэтому кажется, что он действительно определен здесь https://github.com/tensorflow/tensorflow/blob/r1.2/tensorflow/core/kernels/summary_op.cc и этот код использует код, упомянутый выше (2).

Итак, мне кажется, что гистограмма, которая используется сейчас, зарыта глубоко внутри фреймворка, и я не уверен, что ее легко переписать.

На этой странице есть электронная почта для поддержки https://github.com/tensorflow/tensorflow/tree/master/tensorflow/python/summary . Я полагаю, что лучше связаться с этим человеком или создать проблему на github.

person ckorzhik    schedule 14.08.2017
comment
В качестве временного грязного хака вы можете просто нарисовать нужные процентили, используя обычные скаляры, или просто построить все данные с помощью matplotlib и использовать сводку изображения. - person ckorzhik; 14.08.2017