Javascript Tensorflow.js:检查目标时出错。。。期望层具有n个维度

Javascript Tensorflow.js:检查目标时出错。。。期望层具有n个维度,javascript,tensorflow,keras,tensorflow.js,Javascript,Tensorflow,Keras,Tensorflow.js,我只是从Tensorflow.js开始,并尝试构建一个简单的模型,以28×28个数组(每个数组代表一张图片)作为输入。但有些东西连接不太正确。运行下面的代码段,我得到: errors.ts:48 Uncaught (in promise) Error: Error when checking target: expected dense_Dense1 to have 2 dimension(s). but got array with shape 100,28,28 at new e (

我只是从Tensorflow.js开始,并尝试构建一个简单的模型,以28×28个数组(每个数组代表一张图片)作为输入。但有些东西连接不太正确。运行下面的代码段,我得到:

errors.ts:48 Uncaught (in promise) Error: Error when checking target: expected dense_Dense1 to have 2 dimension(s). but got array with shape 100,28,28
    at new e (errors.ts:48)
    at Od (training.ts:147)
    at e.standardizeUserData (training.ts:1133)
    at training_tensors.ts:427
    at common.ts:14
    at Object.next (common.ts:14)
    at common.ts:14
    at new Promise (<anonymous>)
    at op (common.ts:14)
    at kd (training_tensors.ts:408)
我的输入具有形状(批次,28,28),而模型输出具有形状(批次,100)。但是,我要求我的模型预测给定输入的
trainX
(分别是
model.fit
的第二个和第一个参数)

为了解决这个问题,我只需要将预测值的形状更新为(批次,100):

我的输入有形状(批次,28,28),而模型输出有形状(批次,100)。但是,我要求我的模型预测给定输入的
trainX
(分别是
model.fit
的第二个和第一个参数)

为了解决这个问题,我只需要将预测值的形状更新为(批次,100):

和的可能副本和可能副本
// build the model
var input = tf.input({shape: [28,28]})
var h1 = tf.layers.reshape({targetShape: [28*28]}).apply(input)
var h2 = tf.layers.dense({units: 17}).apply(h1)
var model = tf.model({inputs: input, outputs: h2})
model.compile({optimizer: 'sgd', loss: 'meanSquaredError', lr: 0.0001})
model.summary();

// get training data and train
var trainX = tf.ones([100,28,28]),
    trainY = tf.ones([100, 17])

model.fit(trainX, trainY, {
  batchSize: 10,
  epochs: 1,
}).then(function() {
  console.log( model.predict(trainX).dataSync() )
})