如何使用plt.hist()从一维张量中绘制直方图而不启用急切执行?

时间:2019-03-16 21:26:17

标签: python tensorflow matplotlib

我想做的是编写一个函数,该函数可以将一维张量转换为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(),因为它只使用一种固定了bin宽度的合并技术,而不像plt.hist()提供了多种合并技术。
有什么方法可以在不启用急切执行的情况下做到这一点?

0 个答案:

没有答案