tensorflow - tensorflow.js 在检查输入时出错:预期的 dense_Dense1_input 具有 3 个维度。但是有形状的数组
问题描述
简单的问题,我确定答案很简单,但我真的很难将模型形状与张量拟合到模型中。
这个简单的代码
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,它们是张量或张量数组。config 对象是第三个参数。
此外,tensorfeature
作为参数传递给 model.fit 的 feature() 张量应该比inputShape
模型的高一维。由于tensorfeature.shape
用作inputShape
,如果我们要训练模型,tensorfeature
其维度应该被扩展。可以使用reshape
或来完成expandDims
。
model.fit(tensorfeature.expandDims(0))
// or possibly
model.fit(tensorfeature.reshape([1, ...tensorfeature.shape])
推荐阅读
- vba - 返回“,”之后的字符串的函数
- sql-server - SSRS 报告:在 SQL IN 子句中组合并传递多个“文本”参数
- windows - 如何从 Windows 批处理文件中获取当前目录相关路径
- oracle - 在 PL/SQL 块中声明了一个局部变量但无法识别
- machine-learning - 为什么 SVC 模型返回值数组都等于 1 的预测?
- discord - 我正在尝试通过某个关键字查找频道,该关键字可以在频道名称中的任何位置
- reactjs - React virtualize - 列出不均匀高度div的重叠
- python - 如何在 PyGame 中拖动超过 2 个图像?
- javascript - 在文本中显示带有复选框值的多选下拉列表
- ruby-on-rails - 无法更改标签的字体颜色。Chartkick Ruby on rails