2016-12-11 4 views
0

Ich habe eine Liste:Indexieren einer Liste mit einem Tensor Skalarvariable in Theano

my_list = [[1,2,3,4], [4,5,6], [1,2,1,2,1,2]] 

ich auch einen Tensor Variable:

a_tensor = theano.tensor.ivector("tensor") 

jetzt will ich theano.scan verwenden, um die bekommen entsprechenden Eintrag in der Liste der Index angegeben:

result, _ = theano.scan(fn=lambda idx, a_list:a_list[idx], 
         sequences=[a_tensor], 
         non_sequences=theano.shared(np.array(my_list)))  

bekam aber der Fehler: * Typeerror: der generische ‚SharedVariab Das Objekt ist nicht unterscheidbar. Diese gemeinsam genutzte Variable enthält ein Numpy-Array mit dtype: 'object'. Dieser Datentyp wird derzeit von Theano-Tensoren nicht erkannt: Bitte geben Sie Ihre Daten in einen unterstützten numerischen Typ ein, wenn Sie Theano Tensor-Funktionen benötigen. *

Ich bin sehr neu zu Theano, also denke ich wahrscheinlich über dieses Problem in der falschen Weise. Ich würde wirklich jeden Ratschlag schätzen.

Antwort

0

In der Fehlermeldung ist

TypeError: The generic 'SharedVariable' object is not subscriptable. This shared variable contains a Numpy array with dtype: 'object'. This data type is not currently recognized by Theano tensors: please cast your data into a supported numeric type if you need Theano tensor functionalities.

Die gemeinsame Variable theano.scan als non_sequences bestand nicht genau definiert ist. Dies liegt daran, dass np.array(my_list) ein Array zurückgibt, dessen Typ Objekt ist, nicht ganzzahlig. Das liegt daran, dass my_list eine unregelmäßige Form hat.

Mit

my_list = [1,2,3,4] 

, würde Ihr Code arbeiten.

Verwandte Themen