Puis-je créer un calque avec plusieurs cellules rnn? [question sur un article]
J'essaye de mettre en œuvre https://dl.acm.org/doi/pdf/10.1145/3269206.3271794 .
Structure:

Comme il l'a dit:
En particulier, nous intégrons les vecteurs d'incorporation appris de chaque codeur récurrent individuel dans un nouveau vecteur d'inclusion concluant pour considérer conjointement divers modèles de séries temporelles avec différentes configurations ⟨α, β⟩
Pour ma compréhension, il utilise plusieurs cellules rnn individuelles pour traiter différentes séries temporelles, puis concatre tous les états cachés ensemble pour former une entrée 3D qui peut utiliser les fonctionnalités d'extraction de conv 2d.
Mais je n'ai pas vu qu'il existe un moyen de créer plusieurs cellules rnn dans le même calque, est-ce que je comprends mal ?? Sinon, pourriez-vous me donner un guide ou un exemple?
Réponses
Pas tout à fait familier avec cette architecture de modèle, mais je ne pense pas que cela fonctionne comme vous l'avez décrit.
D'un rapide survol, un aperçu simplifié du modèle peut être
- entrée de données: $X$ séries chronologiques multiples
- RNN: passer chaque série chronologique $x$ via un réseau neuronal récurrent et saisissez son état caché
- Incorporation conjointe: concattez les états cachés de chacun $x$ série dans une intégration avec $X$ canaux
- Convnet
Mais je n'ai pas vu qu'il existe un moyen de créer plusieurs cellules rnn dans le même calque, est-ce que je comprends mal ?? Sinon, pourriez-vous me donner un guide ou un exemple?
Essentiellement, tout rnn aura un nombre de cellules égal au nombre de pas de temps. À titre d'exemple, en PNL, ce nombre de cellules serait égal au nombre de mots dans une phrase, où chaque phrase de votre rame doit avoir la même longueur.
Je vous suggère de vous familiariser avec les modèles de séquence pour mieux comprendre le concept de cet article.
Utilisez une API fonctionnelle pour résoudre le problème.
La structure aime ceci:
import numpy as np
import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers
data = pd.DataFrame(np.random.uniform(size=(1000,3)), columns=['Sales', 'SalesDiff7', 'SalesAggMean7'])
multi_inputs = []
multi_outputs = []
window_size = my_window.input_width
for i in range(data.shape[1]):
ti = keras.Input(shape=(window_size, 1), name=f't{i}')
tlstm = layers.LSTM(32)(ti)
multi_inputs.append(ti)
multi_outputs.append(tlstm)
r = tf.stack(multi_outputs, axis=-2)
.....
result = keras.layers.Dense(units=1)(fc)
model = Model(
inputs=multi_inputs,
outputs=result,
)