我正在尝试使用tensorflow版本tfjs@0.12.0
训练一个简单的网络模型,并且正在使用Layers API。只是一个网络,它以两个数字作为输入并返回相同的两个数字-因此该网络应尝试学习恒等矩阵。
我正在用6个示例进行训练,因此输入和输出的形状均为[6,2],但是出现形状错误。
我的JavaScript文件如下:
function setup() {
const model = tf.sequential();
const hidden = tf.layers.dense({
units: 4,
useBias: true,
activation:'sigmoid',
inputDim: [2],
});
model.add(hidden);
const output = tf.layers.dense({
units: 2,
activation:'sigmoid',
});
model.add(output);
model.compile({
optimizer: 'sgd',
loss: 'meanSquaredError',
});
const xs = tf.tensor2d([
[0.25, 0.92],
[0.12,0.3],
[0.4,0.74],
[0.3,0.82],
[0.09,0.95],
[0.53,0.2],
]);
const ys = tf.tensor2d([
[0.25, 0.92],
[0.12,0.3],
[0.4,0.74],
[0.3,0.82],
[0.09,0.95],
[0.53,0.2],
]);
console.log(model.fit(xs,ys));
}
但是,当我运行脚本时,出现形状错误:
Promise { <state>: "rejected" }
sketch.js:46:5
Error: Error when checking input: expected dense_Dense1_input to have shape [,2], but got array with shape [6,2].
答案 0 :(得分:2)
在inputDim: 2
层声明中设置inputShape: [2]
或hidden
。