tensorflow.js 在检查输入时出现错误:预期dense_Dense1_input 具有 3 个维度。但得到了形状数组

2024-04-01

简单的问题和我确定的答案很简单,但我真的很难将模型形状与适合模型的张量相匹配。

这个简单的代码

    let tf = require('@tensorflow/tfjs-node');

    let features = {
        x: [1,2,3,4,5,6,7,8,9],
        y: [1,2,3,4,5,6,7,8,9]
      }

    let tensorfeature  = tf.tensor2d(Object.values(features))

    console.log(tensorfeature.shape)

    const model = tf.sequential();
        model.add(tf.layers.dense(
            {
            inputShape: tensorfeature.shape,
            units: 1
        }
            ))
            const optimizer = tf.train.sgd(0.005);
            model.compile({optimizer: optimizer, loss: 'meanAbsoluteError'}); 
            model.fit(tensorfeature,
                {epochs: 5}
                )

导致错误:检查输入时出错:预期dense_Dense1_input具有3个维度。但得到了形状为 2,9 的数组

尝试了多种重塑、切片等方法,但没有成功。有人能指出我到底出了什么问题吗?


model.fit至少有两个参数 x, y,它们可以是张量或张量数组。配置对象是第三个参数。

另外,该功能(tensorfeature)作为参数传递给 model.fit 的张量应该比inputShape模型的。自从tensorfeature.shape被用作inputShape,如果我们想训练模型tensorfeature其规模应扩大。可以使用以下方法完成reshape or expandDims.

model.fit(tensorfeature.expandDims(0))
// or possibly
model.fit(tensorfeature.reshape([1, ...tensorfeature.shape])

模型和训练数据之间的形状不匹配已经被讨论过here https://stackoverflow.com/questions/51790230/expected-dense-dense1-input-to-have-shape-a-but-got-array-with-shape-b/51791892#51791892 and there https://stackoverflow.com/questions/54689808/how-to-add-images-in-a-tensorflow-js-model-and-train-the-model-for-given-images/54690176#54690176

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

tensorflow.js 在检查输入时出现错误:预期dense_Dense1_input 具有 3 个维度。但得到了形状数组 的相关文章

随机推荐