Говорит, что он ожидает, что density_Dense1_input имеет форму [null, 8], но получает массив с формой [8,1] - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь использовать данные из моего CSV-файла для своей нейронной сети с использованием тензорного потока. js безрезультатно. Появляется то же сообщение об ошибке ( Ошибка при проверке: ожидалось, что dens_Dense1_input будет иметь форму [null, 8], но получил массив с формой [8,1]. ). Я знаю, что подобные вопросы задавались, но я не могу найти ни одного, чьи данные хранятся в файлах CSV.

Вот код:

const dataLine = tf.tensor([0.352941,0.482412,0,0,0,0.353204,0.047822,0.116667]);

columnConfigs = {outcome: {isLabel: true}};
const dataset = tf.data.csv('data.csv', {columnConfigs}).map(({xs, ys}) => {return {xs:Object.values(xs), ys:Object.values(ys)}});

const model = tf.sequential();
model.add(tf.layers.dense({units: 12, inputShape: [8]}));
model.add(tf.layers.dense({units: 1, inputShape: [12]}));

model.compile({loss: 'meanSquaredError', optimizer: 'sgd'});
model.fitDataset(dataset, {
    epochs: 100,
  });

const prediction = model.predict(dataLine);
prediction.print();

Я также связал Небольшой раздел данных, которые я использую:

pregnancies,glucose,blood_pressure,skin_thickness,insulin,BMI,diabetes_pedigree_function,age,outcome
0.058824,0.507538,0.409836,0.151515,0.042553,0.360656,0.191289,0.083333,0
0.294118,0.442211,0.540984,0.212121,0.027187,0.363636,0.112724,0.15,0
0.470588,0.884422,0.737705,0.343434,0.35461,0.502235,0.166097,0.616667,1
0.411765,0.753769,0.540984,0.424242,0.404255,0.517139,0.273271,0.35,0
0.058824,0.366834,0.409836,0.10101,0,0.342772,0.072588,0,0
0.411765,0.939698,0.557377,0.393939,0.359338,0.561848,0.075149,0.333333,1
0,0.502513,0.721311,0.606061,0.130024,0.697466,0.377455,0.166667,0
0,0.733668,0.672131,0,0,0.603577,0.727156,0.383333,0
0,0.527638,0.52459,0.414141,0.167849,0.61848,0.040564,0.016667,0
0.117647,0.422111,0,0,0,0,0.096499,0,0

Любая помощь в этом вопросе будет принята с благодарностью, спасибо

1 Ответ

0 голосов
/ 11 марта 2020

попробуйте пакетный набор данных:

const dataset = tf.data.csv('data.csv', {columnConfigs})
    .map(({xs, ys}) => {return {xs:Object.values(xs), ys:Object.values(ys)}})
    .batch(100)

, но затем расширьте измерение при прогнозировании:

const dataLine = tf.tensor([0.352941,0.482412,0,0,0,0.353204,0.047822,0.116667])
    .expandDims();

...

const prediction = model.predict(dataLine);
...