检查输入时出错:预期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
问题描述
总的来说,我对 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屋!