类型错误:无法迭代标量张量。
plt.bar() 为 (x, y) 值输入了两个张量标量。
(将 CamDavidsonPilon Bayesian-Hackers 转换为 tensorflow2.0)
这是专门针对
“def plot_artificial_sms_dataset():”函数。我在上面的代码块中尝试过,如果我将张量转换为 int32,它就可以工作。不知道为什么解决方案是可变的
链接: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);
最佳答案
x.numpy(), y.numpy() 将 'x' 和 'y' 转换为 numpy 数组
关于python-3.x - 另一个解决 matplotlib 的 "TypeError: Cannot iterate over a scalar tensor"问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55369147/