Fehler: Fehler beim Überprüfen der Eingabe: Es wird erwartet, dass dens_Dense1_input 3 Dimensionen hat. aber bekam Array mit Form 1,9

Jan 05 2021

Ich bin wirklich neu in tensorflow.js und ich versuche ein einfaches Modell zu erstellen, das dir sagt, auf welcher Seite der Leinwand du geklickt hast

const model = tf.sequential();
model.add(
         tf.layers.dense({
           units: 200,
           activation: "sigmoid",
           inputShape: [0, 1],
         })
       );
       model.add(
         tf.layers.dense({
           units: 2,
           activation: "softmax",
         })
       );
       model.compile({
         optimizer: optimizer,
         loss: "categoricalCrossentropy",
         metrics: ["accuracy"],
       });

meine Trainings- und Testdaten

        const yTrain = tf.tensor2d(
          [10, 130, 60, 20, 150, 110, 3, 160, 99],
          [1, 9]
        );
        const xTrain = tf.tensor2d([0, 1, 0, 0, 1, 1, 0, 1, 0], [1, 9]);

        const yTest = tf.tensor2d(
          [5, 106, 33, 88, 104, 140, 7, 60, 154],
          [1, 9]
        );
        const xTest = tf.tensor2d([0, 1, 0, 0, 1, 1, 0, 0, 1], [1, 9]);

Antworten

edkeveked Jan 05 2021 at 22:11

Die inputShape hat die Größe 2, daher sollten die Features (hier xtrain und xtest) die Dimension 3 haben.

Außerdem ist es nicht sinnvoll, eine Dimensionsgröße von 0 zu haben (dies bedeutet, dass der Tensor leer ist).

In Anbetracht Ihrer xtrain- und xtest-Form [a, b]sollte die inputShape sein [b].

Diese Formfehlanpassung zwischen dem Modell und den Trainingsdaten wurde hier und da diskutiert