【问题标题】:mxnet failed to infer typemxnet 无法推断类型
【发布时间】:2017-09-26 07:13:46
【问题描述】:

我的 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 是一个变量,我将其固定为一个列表。请告诉我!

【问题讨论】:

  • 不是转置,而是在轴之间交换解决了这个问题。

标签: deep-learning mxnet


【解决方案1】:

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

例如some_indices = mx.sym.var('indices', shape=(1,1))

如果您可以粘贴最少的可重现代码,那就太好了:)

【讨论】:

    【解决方案2】:

    不是采用转置,而是在轴之间交换解决了这个问题。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 2019-12-27
      • 2018-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多