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