Это кажется довольно простым, но я не могу понять это.
Итак, у меня есть образец / данные / входные данные, которые представляют собой массив массивов по 10 дюймов, а выходные данные / метки - это просто массив целых чисел.
Позвольте мне объяснить, поскольку мои данные не структурированы должным образом. Основываясь на вводе 10 целых чисел, я сообщаю модели, что результатом является 1 целое число в метке / выводе.
Кроме того, я не могу пакетировать данные, потому что они последовательные. Это означает, что входные значения сдвигаются на единицу вправо, поэтому первые девять целых чисел в выборке [i + 1] являются последними 9 выборками [i] плюс новый.
Вот как у меня это закодировано.
let labels = [1,0,0...]
let samples = [[0,1,1,0,1,0,1,1,1,0], ...]
в основном массив из 10.
const model = tf.sequential();
let input = tf.tensor2d(samples);
model.add(tf.layers.dense({ units: 10, batchInputShape: [1, 10], activation: "sigmoid" }));
model.add(tf.layers.dense({ units: 1, activation: "softmax" }));
model.summary();
model.compile({ loss: "meanSquaredError", optimizer: "sgd", metrics: ["accuracy"] });
model.fit(labels, input, { batchSize: 1, shuffle: false, verbose: 1 });
Когда я пробую эту или любую другую комбинацию ввода, я получаю следующее
UnhandledPromiseRejectionWarning: Error: Error when checking model input: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see 1 Tensor(s), but instead got the following list of Tensor(s): 0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0
Заранее спасибо за помощь.