Dense_Dense1_input attendu pour avoir la forme “a”

Quelqu’un m’aiderait-il avec ce projet TensorFlow JS? Il s’agit d’un bot bot avec machine à apprendre, j’ai collé sur «construire un neural network», donne cette erreur

Lien de projet: https://github.com/ran-j/ChatBotNodeJS

Le code de formation à la ligne /routes/index.js 189

//Build neural network model = tf.sequential(); model.add(tf.layers.dense({inputShape: [documents.length], units: 100})); model.add(tf.layers.dense({units: 4})); model.comstack({loss: 'categoricalCrossentropy', optimizer: 'sgd'}); model.fit(xs, ys, {epochs: 1000}); 

L’erreur indique qu’il existe une discordance entre la forme définie pour le modèle et les tenseurs utilisés par le modèle, qu’il s’agisse des tenseurs d’apprentissage ou d’essai.

Afin de vous débarrasser de l’erreur, vous devez faire correspondre les deux formes.

Dense_Dense1_input attendu pour avoir la forme a mais obtenir un tableau avec la forme b

Dans l’erreur, a est la forme du modèle et b est la forme du tenseur qui génère l’erreur. Il faut donc changer si la forme du modèle doit être b ou la forme du tenseur être a .

Le moyen le plus simple est de changer la forme du modèle en b, car la seconde impliquerait une remise en forme du tenseur, c’est-à-dire

 model.add(tf.layers.dense({inputShape: b, units: 100})); 

Compte tenu du modèle de la question, il sera

 model.add(tf.layers.dense({inputShape: [27, 48], units: 100})); 

documents.length est la quantité de données d’apprentissage que vous avez et non la formeSaisie de votre modèle. Vos données d’entraînement n’ont donc pas la forme correcte pour votre modèle.

La forme correcte serait xs.shape .

Donc, votre première couche devrait être:

 tf.layers.dense({inputShape: xs.shape, units: 100})