You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在TensorFlow.js中格式化输入数据实现6输入1输出的任务时长预测

概念说明

维度(dimension)

直接对应数组的嵌套层数:

  • 一维数组[1,2,3] → 1维张量
  • 二维数组[[1,2,3],[4,5,6]] → 2维张量
  • 三维数组[[[1],[2]],[[3],[4]]] → 3维张量
    深度学习中常规表格类训练数据都是2维张量,第一维是样本数量,第二维是单条样本的特征数量。

inputShape

指单条样本的特征形状,不需要包含样本数量。比如你单条样本有6个特征,单条就是长度为6的一维数组,inputShape就填[6];如果是28*28像素的单通道图片,单条是28行28列的二维数组,inputShape就填[28,28]。

为什么需要定义这些参数

TensorFlow属于静态图框架,训练前需要先确定整个计算链路的结构、提前分配权重参数和计算资源。如果不提前定义输入形状,框架无法判断需要创建多少个权重、怎么对齐输入输出数据,会直接报错。

使用逻辑

  1. 先确定单条样本的特征结构,填写inputShape
  2. 构造训练输入张量时,整体形状为[总样本数, ...inputShape],比如100条样本每条6个特征,输入张量形状就是[100, 6]
  3. 对应的标签张量形状为[总样本数, 输出值数量],你这里每条输出1个预测耗时,标签形状就是[100, 1]

原代码错误说明
  • inputShape设置错误:你单条样本有3个特征,填成了[1],模型只能接收1个特征的输入
  • 张量构造参数错误:tf.tensor2d第二个参数是形状数组,你填的[20,1,0]不符合2维张量的形状要求(2维张量形状只能是两个数字:[样本数, 特征数])
  • 标签张量形状错误:2条样本的标签形状应该是[2,1],你填的[25]不符合要求
  • 预测输入形状错误:单条预测输入也需要对齐维度,要写成2维张量形状[1, 特征数]

修复后的TensorFlow.js代码

首先是对应你注释需求的3特征测试版本:

const model = tf.sequential();
// 单条样本3个特征,inputShape设为[3]
model.add(tf.layers.dense({units: 1, inputShape: [3]}));
model.compile({
    optimizer: tf.optimizers.adam(0.1), // 对齐Python版本用Adam优化器,学习率0.1收敛更快
    loss: 'meanSquaredError'
});

async function createAndTrainModel(){
    // 2条训练样本,每条3个特征,形状[2,3]
    const xs = tf.tensor2d([[40, 1, 0], [20, 1, 0]], [2, 3]);
    // 2条样本对应的标签,形状[2,1]
    const ys = tf.tensor2d([[45], [25]], [2, 1]);

    await model.fit(xs, ys, {epochs: 500});
    console.log("done training model!");

    // 预测单条样本,形状要对齐为[1,3]
    const result = model.predict(tf.tensor2d([[-40, 15, 0]], [1, 3]));
    console.log("预测结果:", result.dataSync()[0]);
    
    // 用完释放张量内存避免泄漏
    xs.dispose();
    ys.dispose();
    result.dispose();
}

createAndTrainModel();

如果要对接6个特征的正式需求,仅需修改两处:

  1. 第一层inputShape改为[6]
  2. 训练输入和预测输入的特征数量对应改成6个即可,示例:
// 6特征版本的输入示例
const xs = tf.tensor2d([[4,1,1,5,8,2], [此处填写其他样本的6个特征]], [样本总数, 6]);

如果是加载你用Python导出的tfjs模型,不需要自己搭建结构,直接用tf.loadLayersModel('模型json文件地址')加载后即可直接调用predict。


内容的提问来源于stack exchange,提问作者Johnnybossboy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 04:45:03