Ben*_*ing 8 python neural-network tensorflow
错误信息:
tensorflow.python.framework.errors_impl.InvalidArgumentError:无法计算 AddV2,因为输入 #1(从零开始)预计是双张量,但实际上是浮点张量 [Op:AddV2]
在我的代码中,我创建了一个张量流分布 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)
Run Code Online (Sandbox Code Playgroud)
结果print(x.dtype)是“dtype: 'float'”
据我所知,根据文档,张量流不支持浮点数据类型。
为此我特别困惑。任何帮助将不胜感激。
似乎是最新的张量流概率模块中的一个错误。它仅适用于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)
Run Code Online (Sandbox Code Playgroud)