我的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 :(得分: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 ) ) )