检查输入时出错:预期dense_Dense1_input 具有x 维.但是得到了形状为 y,z 的数组 [英] Error when checking input: expected dense_Dense1_input to have x dimension(s). but got array with shape y,z

查看:28
本文介绍了检查输入时出错:预期dense_Dense1_input 具有x 维.但是得到了形状为 y,z 的数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

总的来说,我对 Tensorflowjs 和 Tensorflow 非常陌生.我有一些数据,这是 100% 使用的容量,因此是 0 到 100 之间的数字,并且每天有 5 小时记录这些容量.所以我有一个 5 天的矩阵,包含 100% 中的 5 个百分比.

I'm very new to Tensorflowjs and Tensorflow in general. I have some data, which is capacity used out of 100%, so a number between 0 and 100, and there are 5 hours per day these capacities are noted. So I have a matrix of 5 days, containing 5 percentages out of 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 的数组.所以我怀疑我以某种方式错误地输入或映射了我的数据.

I'm getting an error returned: Error when checking input: expected dense_Dense1_input to have 3 dimension(s). but got array with shape 5,5. So I suspect I'm entering or mapping my data incorrectly in some way.

推荐答案

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

Your error comes from a mismatch of the size of the training and test data from one hand on the other hand by what is defined as the input of your model

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

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

The inputShape is your input dimension. Here it is 5, because each features is an array of size 5.

model.predict(tf.tensor(5))

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

Also to test your model, your data should have the same shape as when your are training your model. Your model cannot predict anything with tf.tensor(5). Because your training data and your test data size do not match. Consider this test data instead tf.tensor2d([5, 1, 2, 3, 4], [1, 5])

这是一个有效的 snipet

这篇关于检查输入时出错:预期dense_Dense1_input 具有x 维.但是得到了形状为 y,z 的数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆