Ошибка: ошибка при проверке ввода: ожидалось, что у density_Dense1_input будет 3 измерения (а). но получил массив с формой 1,9
Jan 05 2021
Я действительно новичок в tensorflow.js, и я пытаюсь создать простую модель, которая скажет вам, на какой стороне холста вы нажали
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"],
});
мои данные обучения и тестирования
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]);
Ответы
edkeveked Jan 05 2021 at 22:11
InputShape имеет размер 2, поэтому функции (здесь xtrain и xtest) должны иметь размер 3.
Кроме того, не имеет смысла иметь размерный размер равным 0 (это будет означать, что тензор пуст).
Учитывая ваши формы xtrain и xtest [a, b]
, inputShape должен быть [b]
.
Это несоответствие формы модели и обучающих данных обсуждалось здесь и там.