2017-09-26 107 views
1

我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是一个变量,我修复了一个列表。请让我知道!

+0

而不是转置,轴之间的交换解决了问题。 – rgaut

回答

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))) 
2

它看起来像MXNet不能推断输出的形状。你是否指定了变量some​​_indices的形状?

例如some_indices = mx.sym.var(“指数”,形状=(1,1))

这将是很好,如果你可以粘贴最低可重复的代码:)