2017-09-26 184 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))

這將是很好,如果你可以粘貼最低可重複的代碼:)