2017-09-26 6 views
1

Mon code mxnet - qui consiste en une série de connexions complexes et tranchage soulève l'erreur suivante:mxnet n'a pas réussi à déduire le type

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

Je ne suis pas sûr de savoir comment interpréter cela ou les informations à fournir pour aider le débugger . Concat0 fait partie de l'opération:

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

ici some_indices est une variable que je fixe à une liste. Faites-moi savoir!

+0

Au lieu de prendre la transposition, la permutation entre les axes a résolu le problème. – rgaut

Répondre

0

Au lieu de prendre transposent, l'échange entre les l'axe a résolu le problème.

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

Il semble que MXNet ne puisse pas déduire la forme de la sortie. Avez-vous spécifié la forme de la variable some_indices?

par exemple. some_indices = mx.sym.var ('indices', forme = (1,1))

Ce serait bien si vous pouvez coller un code reproductible minimum :)