训练时Tensorflowjs产生形状错误

时间:2018-07-17 14:51:42

标签: javascript tensorflow tensorflow.js

我正在尝试使用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].

1 个答案:

答案 0 :(得分:2)

inputDim: 2层声明中设置inputShape: [2]hidden