In vielen neuronalen Netzwerkbibliotheken gibt es eingebettete Ebenen, wie in Keras oder Lasagne .
Ich bin mir nicht sicher, ob ich seine Funktion verstehe, obwohl ich die Dokumentation gelesen habe. In der Keras-Dokumentation heißt es beispielsweise:
Positive ganze Zahlen (Indizes) in Dichtevektoren fester Größe umwandeln, z. [[4], [20]] -> [[0,25, 0,1], [0,6, -0,2]]
Könnte eine sachkundige Person erklären, was es tut und wann Sie es verwenden würden?
EDIT: Bezüglich des Einfügens in die Dokumentation gibt es nicht viel aus der Dokumentation einzufügen, daher meine Frage. Ich verstehe die Transformation nicht und auch nicht, warum sie verwendet werden sollte.
Wie auch immer, so wird es in Keras erklärt:
Einbetten
keras.layers.embeddings.Embedding (input_dim, output_dim, init = 'uniform', input_length = None, weight = None, W_regularizer = None, W_constraint = None, mask_zero = False) Wandelt positive ganze Zahlen (Indizes) in Dichtevektoren fester Größe um , z.B. [[4], [20]] -> [[0,25, 0,1], [0,6, -0,2]]
Eingabeform: 2D-Tensor mit Form: (nb_samples, sequence_length). Ausgabeform: 3D-Tensor mit Form: (nb_samples, sequence_length, output_dim). Argumente:
input_dim: int> = 0. Größe des Wortschatzes, dh. 1 + maximaler ganzzahliger Index, der in den Eingabedaten vorkommt. output_dim: int> = 0. Dimension der dichten Einbettung
Und so wird es in Lasagne erklärt:
Eine Ebene für Worteinbettungen. Die Eingabe sollte eine Tensor-Variable vom Typ Integer sein.
Parameter: incoming: eine Layer-Instanz oder ein Tupel
Die Ebene, die in diese Ebene eingespeist wird, oder die erwartete Eingabeform.
input_size: int
Die Anzahl der verschiedenen Einbettungen. Die letzte Einbettung hat den Index input_size - 1.
output_size: int
Die Größe jeder Einbettung.
W: Die gemeinsam genutzte Variable, der Ausdruck, das Numpy-Array oder die aufrufbare Variable
Anfangswert, Ausdruck oder Initialisierer für die Einbettungsmatrix. Dies sollte eine Matrix mit Form sein (input_size, output_size). Weitere Informationen finden Sie unter lasagne.utils.create_param ().
Beispiele
>>> from lasagne.layers import EmbeddingLayer, InputLayer, get_output >>> import theano >>> x = T.imatrix() >>> l_in = InputLayer((3, )) >>> W = np.arange(3*5).reshape((3, 5)).astype('float32') >>> l1 = EmbeddingLayer(l_in, input_size=3, output_size=5, W=W) >>> output = get_output(l1, x) >>> f = theano.function([x], output) >>> x_test = np.array([[0, 2], [1, 2]]).astype('int32') >>> f(x_test) array([[[ 0., 1., 2., 3., 4.], [ 10., 11., 12., 13., 14.]], [[ 5., 6., 7., 8., 9.], [ 10., 11., 12., 13., 14.]]], dtype=float32)