Je suis plutôt nouveau à Neural Networks et la bibliothèque Keras et je me demande comment je peux utiliser la couche d'incorporation comme décrit here pour masquer mes données d'entrée d'un tenseur 2D à un tenseur 3D pour un RNN.Comment utiliser la couche d'intégration pour le réseau neuronal récurrent (RNN) dans Keras
Dites mes timeseries données à la recherche comme suit (avec une augmentation du temps):
X_train = [
[1.0,2.0,3.0,4.0],
[2.0,5.0,6.0,7.0],
[3.0,8.0,9.0,10.0],
[4.0,11.0,12.0,13.0],
...
] # with a length of 1000
Maintenant, dis que je voudrais donner le RNN les 2 derniers vecteurs de caractéristiques afin de prédire la fonction vecteur pour le temps t +1
Actuellement (sans le calque d'intégration), je crée moi-même le tenseur 3D requis avec la forme (nb_samples, timesteps, input_dim) (comme dans cet exemple here).
liés à mon exemple, la finale Tensor 3D serait alors se présenter comme suit:
X_train_2 = [
[[1.0,2.0,3.0,4.0],
[2.0,5.0,6.0,7.0]],
[[2.0,5.0,6.0,7.0],
[3.0,8.0,9.0,10.0]],
[[3.0,8.0,9.0,10.0],
[4.0,11.0,12.0,13.0]],
etc...
]
et Y_train:
Y_train = [
[3.0,8.0,9.0,10.0],
[4.0,11.0,12.0,13.0],
etc...
]
Mon modèle se présente comme suit (adapté à l'exemple simplifié ci-dessus):
num_of_vectors = 2
vect_dimension = 4
model = Sequential()
model.add(SimpleRNN(hidden_neurons, return_sequences=False, input_shape=(num_of_vectors, vect_dimension)))
model.add(Dense(vect_dimension))
model.add(Activation("linear"))
model.compile(loss="mean_squared_error", optimizer="rmsprop")
model.fit(X_train, Y_train, batch_size=50, nb_epoch=10, validation_split=0.15)
Enfin, ma question serait, comment puis-je éviter de faire ces tenseurs 2D à Tenseur 3D me remodeler et utiliser le calque d'incorporation à la place? Je suppose que, après modèle = séquentiel() Je dois ajouter quelque chose comme:
model.add(Embedding(?????))
Probablement la réponse est assez simple, je suis tout simplement confus par la documentation de la couche d'enrobage.
peut-être que j'aurais dû ajouter un ".0" derrière tous mes numéros. En fait, je n'essaie pas d'effectuer une analyse catégorique. – Kito