J'ai été donné quelques données de ce format et les détails suivants:Tensorflow dynamique RNN (LSTM): comment formater l'entrée?
person1, day1, feature1, feature2, ..., featureN, label
person1, day2, feature1, feature2, ..., featureN, label
...
person1, dayN, feature1, feature2, ..., featureN, label
person2, day1, feature1, feature2, ..., featureN, label
person2, day2, feature1, feature2, ..., featureN, label
...
person2, dayN, feature1, feature2, ..., featureN, label
...
- il y a toujours le même nombre de fonctionnalités, mais chaque fonction peut être un 0 représentant rien
- il y a une quantité variable des jours disponibles pour chaque personne, p.ex. person1 a 20 jours de données, PERSON2 a 50
L'objectif est de prédire l'étiquette de la personne le lendemain, l'étiquette de Dayn + 1, soit sur une base par personne, ou globale (Par personne a plus de sens pour moi). Je peux reformater librement les données (ce n'est pas grand). Sur la base de ce qui précède, après une lecture je pensais un RNN dynamique (LSTM) pourrait travailler mieux:
- réseau de neurones récurrents: car le lendemain repose la veille
- LSTM: parce que le modèle construit avec chaque jour
- dynamique: car toutes les fonctionnalités sont présentes chaque jour
Si elle n'a pas de sens pour les données que j'ai, s'il vous plaît me arrêter ici. La question est alors:
Comment donner/mettre en forme ces données pour tensorflow/tflearn?
J'ai regardé this par exemple en utilisant tflearn mais je ne comprends pas son format d'entrée pour que je puisse le "copier" au mien. De même, ont trouvé this poster sur une question très similaire mais il semble que les échantillons de l'affiche ne sont pas liés entre eux comme ils sont dans le mien. Mon expérience avec tensorflow est limitée à sa page get started.
Comment créer un RNN lorsque la longueur des données d'entrée est arbitraire? –
Si vous définissez la taille du lot par 'longueur des données d'entrée', vous pouvez déclarer x comme ayant la forme = (Aucun, Aucun, N) 'pour pouvoir transmettre des lots de longueur arbitraire. Si vous voulez dire la longueur de la séquence, alors c'est couvert dans ma réponse. – Dzjkb
Merci, cependant, je ne pense pas que je peux tamponner les données d'entrée avec 0-vecteurs à la longueur maximale dans mon application. Comme à chaque pas de temps, il existe différentes données d'entrée de longueur différente. À mon avis, si le remplissage avec 0-vecteurs, le réseau peut obtenir des performances faibles parce que 0 a sa propre signification par exemple la position ou l'étiquette (un codage à chaud). –