2017-09-26 4 views
1

Mein MxNet Code schließen - die aus einer Reihe von komplexen Verbindungen bestehen und Slicing wirft den folgenden Fehler:MxNet fehlgeschlagen Typ

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

Ich bin nicht sicher, wie das zu interpretieren oder welche Informationen es zu helfen, zu schaffen, debuggen . Concat0 ist Teil der Operation:

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

hier some_indices ist eine Variable, die ich fix eine Liste zu sein. Lass es mich wissen!

+0

Anstatt die Transponierung zu übernehmen, löste das Austauschen zwischen den Achsen das Problem. – rgaut

Antwort

0

Statt transponieren zu nehmen, unter dem Swapping Achse löste das Problem.

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

Es sieht so aus, als ob MXNet nicht in der Lage ist, die Form der Ausgabe abzuleiten. Haben Sie die Form für die Variable some_indices angegeben?

z.B. some_indices = mx.sym.var ('Indizes', Form = (1,1))

Es wäre schön, wenn Sie ein Minimum reproduzierbaren Code einfügen können :)