Errore: errore durante il controllo dell'input: previsto che dense_Dense1_input abbia 3 dimensioni. ma ha un array con forma 1,9
Sono davvero nuovo su tensorflow.js e sto cercando di creare un modello semplice che ti dica su quale lato della tela hai cliccato
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"],
});
i miei dati di allenamento e test
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]);
Risposte
edkeveked
InputShape è di dimensione 2, quindi le caratteristiche (qui xtrain e xtest) dovrebbero essere di dimensione 3.
Inoltre, non ha senso avere una dimensione di dimensione pari a 0 (ciò significa che il tensore è vuoto).
Data la tua forma xtrain e xtest [a, b]
, inputShape, dovrebbe essere [b]
.
Questa mancata corrispondenza di forma tra il modello e i dati di addestramento è stata discussa qua e là