Dans de nombreuses bibliothèques de réseaux neuronaux, il existe des «couches d'intégration», comme dans Keras ou Lasagne .
Je ne suis pas sûr de comprendre son fonctionnement, malgré la lecture de la documentation. Par exemple, dans la documentation de Keras, il est écrit:
Transformez les entiers positifs (index) en vecteurs denses de taille fixe, par exemple. [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]
Une personne bien informée pourrait-elle expliquer son rôle et son utilisation?
EDIT: En ce qui concerne le collage dans la documentation, il n’ya pas grand chose à coller de la documentation, d’où ma question. Je ne comprends pas la transformation, ni pourquoi il devrait être utilisé.
Quoi qu'il en soit, voici comment cela est expliqué dans Keras:
Enrobage
keras.layers.embeddings.Embedding (input_dim, output_dim, init = 'uniforme', input_length = None, poids = None, W_regularizer = None, W_constraint = None, mask_zero = False) Transforme les entiers positifs (indices) en vecteurs denses de taille fixe , par exemple. [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]
Forme d'entrée: Tenseur 2D de forme: (nb_samples, sequence_length). Forme de sortie: Tenseur 3D de forme: (nb_samples, sequence_length, output_dim). Arguments:
input_dim: int> = 0. Taille du vocabulaire, c'est-à-dire. 1 + index entier maximum apparaissant dans les données d'entrée. output_dim: int> = 0. Dimension de l'incorporation dense
Et voici comment ça s’explique à Lasagne:
Une couche pour les mots imbriqués. L'entrée doit être une variable de type entier de type entier.
Paramètres: incoming: une instance de couche ou un tuple
Le calque alimentant ce calque ou la forme d'entrée attendue.
taille_entrée: int
Le nombre de plongements différents. La dernière incorporation aura index input_size - 1.
taille_sortie: int
La taille de chaque incorporation.
W: Theano variable partagée, expression, tableau numpy ou appelable
Valeur initiale, expression ou initialiseur pour la matrice d’incorporation. Cela devrait être une matrice de forme (input_size, output_size). Voir lasagne.utils.create_param () pour plus d'informations.
Exemples
>>> 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)