python - Tensorflow 无法计算 Addv2,因为输入 #1(从零开始)应该是双张量,但它是浮点张量 [Op:Addv]
问题描述
错误信息:
tensorflow.python.framework.errors_impl.InvalidArgumentError:无法计算 AddV2,因为输入 #1(从零开始)应该是双张量,但它是浮点张量 [Op:AddV2]
在我的代码中,我创建了一个 tensorflow 分布 MixtureSameFamily 对象并将我的网络的输出用作参数。但是,当我尝试计算一系列值的概率以生成概率密度函数时,我收到此错误。
我的代码:
gm = tfd.MixtureSameFamily(
mixture_distribution=tfd.Categorical(probs=alphas),
components_distribution=tfd.Normal(
loc=mus,
scale=sigmas
)
)
x = np.linspace(-2,2,int(1000), dtype=np.double)
print(x.dtype)
pyx = gm.prob(x)
结果print(x.dtype)
是“dtype:'float'”
据我所知,tensorflow 不支持文档中的浮点数据类型。
为此,我特别困惑。任何帮助将不胜感激。
解决方案
似乎是最新的 tensorflow-probability 模块中的一个错误。它仅适用于float32
.
解决方法
明确地将您的参数转换为float32
gm = tfd.MixtureSameFamily(
mixture_distribution=tfd.Categorical(probs=alphas.astype('float32')),
components_distribution=tfd.Normal(
loc=mus.astype('float32'),
scale=sigmas.astype('float32')
)
)
x = np.linspace(-2,2,int(1000), dtype='float32')
pyx = gm.prob(x)
推荐阅读
- git - 将单个跟踪文件添加到 .gitignore 而不删除它?
- office-js - Excel 上下文可以安全地传递给一个类吗?
- swift - Swift Array(bufferPointer) EXC_BAD_ACCESS 崩溃
- php - 所有参数都已绑定但我得到“无效的参数编号:绑定变量的数量与令牌的数量不匹配”
- c++ - 多个翻译单元中的内联函数
- pentaho - 显示 mensaje 或警告窗口
- python - ConvergenceWarning:随机优化器:达到最大迭代次数 (10),优化尚未收敛
- excel - 打开多个受密码保护的工作簿
- python-3.x - 相当于 python 中的 lhsnorm(mu,sigma,n)
- json - 为什么这个 JSON 解码失败?