Another work around this "TypeError: Cannot iterate over a scalar tensor" for matplotlib?

Another work around this "TypeError: Cannot iterate over a scalar tensor" for matplotlib?

类型错误:无法迭代标量张量。

为 plt.bar() 的 (x, y) 值输入了两个张量标量。 (将 CamDavidsonPilon Bayesian-Hackers 转换为 tensorflow2.0)

这是专门为 "def plot_artificial_sms_dataset():" 函数。我在上面的代码块中尝试过,如果我将张量转换为 int32,它就可以工作。不确定为什么解决方案是可变的

link: https://github.com/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/blob/master/Chapter2_MorePyMC/Ch2_MorePyMC_TFP.ipynb

我找到的解决方法是将两者都转换为 np.array() 格式。 即 np.array(x), np.array(y).

tensorflow2.0 中是否还有其他解决方法?还有其他明显的解决方案吗?

plt.bar(days_range, data, color=TFColor[3])
plt.bar(tau - 1, data[tau - 1], color="r", label="user behaviour changed")
plt.xlim(0, 80);

问题行是 (tau - 1)。不知道为什么另一个在使用张量时不会中断。

我的解决方案:

    plt.bar(days_range, data, color=TFColor[3])
    plt.bar(np.array(tau - 1), np.array(data[tau - 1]), color="r", label="user behaviour changed")
    plt.xlim(0, 80);

TensorFlow 中有多种类型 Tensors。例如,SparseTensor 不是 numpy 数组对象,但您可以转换为。

x.numpy(), y.numpy() 将 'x' 和 'y' 转换为 numpy 数组