mxnet无法推断类型

时间:2017-09-26 07:13:47

标签: deep-learning mxnet

我的mxnet代码 - 由一系列复杂的连接和切片组成,引发了以下错误:

Error in operator concat0: [03:03:51] src/operator/./concat-inl.h:211: Not enough information to infer type in Concat.

我不确定如何解释或提供哪些信息来帮助调试它。 Concat0是该操作的一部分:

# Define take_column function as transpose(take(transpose(x), i))

for i in range(47):
    y_hat_lt = take_column(y_hat,
                mx.sym.concat(mx.sym.slice(some_indices, begin=i, end=i+1), self.label_dim + mx.sym.slice(some_indices, begin=i, end=i+1), dim=0))

这里some_indices是一个变量,我确定是一个列表。请告诉我!

2 个答案:

答案 0 :(得分:2)

看起来MXNet无法推断输出的形状。您是否为变量some​​_indices指定了形状?

e.g。 some_indices = mx.sym.var(' indices',shape =(1,1))

如果您可以粘贴最小可重现代码,那就太好了。)

答案 1 :(得分:0)

不是进行转置,而是在轴之间进行交换解决了问题。

def ttake( x, i ):
    """ Take from axis 1 instead of 0.
    """
    a = mx.sym.swapaxes(x, dim1=0, dim2=1)
    return mx.sym.flatten( mx.sym.transpose( mx.sym.take( a , i ) ) )