微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 检查输入时出错:期望dense_Dense1_input具有x维度.但得到了形状为y,z的数组

我对Tensorflowjs和Tensorflow很新.我有一些数据,这是100%的容量,所以0到100之间的数字,每天有5小时这些容量.所以我有一个5天的矩阵,其中包含5%的100%.

我有以下型号:

const model = tf.sequential();
model.add(tf.layers.dense({units: 1, inputShape: [5, 5] }));
model.compile({ loss: 'binaryCrossentropy', optimizer: 'sgd' });

// Input data
// Array of days, and their capacity used out of 
// 100% for 5 hour period
const xs = tf.tensor([
  [11, 23, 34, 45, 96],
  [12, 23, 43, 56, 23],
  [12, 23, 56, 67, 56],
  [13, 34, 56, 45, 67],
  [12, 23, 54, 56, 78]
]);

// Labels
const ys = tf.tensor([[1], [2], [3], [4], [5]]);

// Train the model using the data.
model.fit(xs, ys).then(() => {
  model.predict(tf.tensor(5)).print();
}).catch((e) => {
  console.log(e.message);
});

我收到一个错误:检查输入时出错:期望dense_Dense1_input有3个维度.但得到了形状为5,5的阵列.所以我怀疑我是以某种方式错误地输入或映射我的数据.

解决方法:

您的错误来自一方面训练和测试数据的大小不匹配,另一方面来自定义为模型的输入

model.add(tf.layers.dense({units: 1, inputShape: [5, 5] }));

inputShape是您的输入维度.这是5,因为每个功能都是一个大小为5的数组.

model.predict(tf.tensor(5))

另外,为了测试您的模型,您的数据应该与训练模型时的形状相同.您的模型无法使用tf.tensor(5)预测任何内容.因为您的训练数据与您的测试数据大小不匹配.考虑这个测试数据而不是tf.tensor2d([5,1,2,3,4],[1,5])

这是一个工作snipet

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐