Что я хочу сделать, это написать функцию, которая может преобразовать одномерный тензор в массив Numpy и построить из него гистограмму, используя plt.hist ().
До сих пор я пытался сделать это:
import numpy as np
import tensorflow as tf
sess = tf.Session()
one_dimensional_tensor = tf.constant([1, 2., 3., 4., 5.], dtype = np.float64)
one_dimensional_tensor_placeholder = tf.placeholder(dtype = np.float64, shape = sess.run(tf.shape(one_dimensional_tensor)))
n = plt.hist(one_dimensional_tensor_placeholder, bins = 'auto')[0]
bins = plt.hist(one_dimensional_tensor_placeholder, bins = 'auto')[1]
sess.run(n, feed_dict = {one_dimensional_tensor_placeholder: one_dimensional_tensor})
Вышеуказанное, как ясно видно, даст ошибку, говорящую о том, что заполнителю нельзя передать значение с использованием тензора, поскольку one_dimensional_tensor
является тензором.
Изначально я не знаю значение one_dimensional_tensor
, это промежуточный вывод некоторых предыдущих вычислений, поэтому я не могу сделать это:
n = plt.hist([1., 2., 3., 4., 5.], bins = 'auto')[0]
Я не хочу использовать tf.histogram_fixed_width () , так как он использует только одну технику биннинга, в которой ширина бина фиксирована в отличие от plt.hist () , которая предоставляет множество техники биннинга.
Есть ли способ сделать это без включения нетерпеливого выполнения?