Используя Tensorflow. JS, я пытаюсь запустить модель машинного обучения с последним плотным слоем, используя функцию активации softmax. Когда я пытаюсь запустить его, я получаю:
Ошибка при проверке цели: ожидал, что dens_Dense2 будет иметь форму [, 1], но получил массив с формой [3,2].
Если я закомментировав функцию подгонки и запустив ее, я получаю обратно массив 1x2 (как и ожидалось, поскольку у меня есть 2 единицы на последнем слое, и я вхожу только в один тест.
Кроме того, когда я изменяю переменные y к этому массиву: [[1,2,3]], он тренируется (но я не думаю, что это правильно, так как ys не правильной формы последнего слоя (2).
Любой совет или помощь будет оценена, чтобы восполнить мой пробел в знаниях.
var tf = require('@tensorflow/tfjs');
let xs = tf.tensor([
[1,2],
[2,1],
[0,0]
]);
let ys = tf.tensor([
[1,2],
[2,1],
[1,1]
]);
async function createModel () {
const model = tf.sequential();
model.add(tf.layers.dense({inputShape: [2], units: 32, activation: "relu"}));
model.add(tf.layers.dense({units: 2}));
model.compile({loss: "sparseCategoricalCrossentropy",optimizer:"adam"});
//await model.fit(xs, ys, {epochs:1000});
model.predict(tf.tensor([[1,2]])).print();
}
createModel();