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

TensorFlow Keras中如何根据旧坐标输入预测输出新坐标集合

TensorFlow Keras实现固定顺序多数值坐标预测方案

你的需求属于标准的连续值多输出回归任务,不需要设计复杂的多分支模型结构,直接将输出层维度匹配你需要的输出数值个数即可,整体实现逻辑和普通单值回归差异极小。

数据格式规范

先把你的坐标数据整理成符合模型输入输出要求的数组格式:

  • 输入特征集:单个样本为4个连续数值,按顺序对应旧坐标的old_x1、old_y1、old_x2、old_y2,整个数据集形状为(总样本数, 4)
  • 标签集:单个样本为4个目标数值,按顺序对应新坐标的new_x1、new_y1、new_x2、new_y2,整个数据集形状同样为(总样本数, 4)

对应你给出的示例:单条输入特征为[0, 0, 4, 4],匹配的标签为[2, 3, 8, 9],按这个格式拆分训练集、验证集即可。

模型搭建参考

用Sequential序贯模型就能快速实现,输出层设置4个神经元,回归任务必须用线性激活函数,不要用softmax、sigmoid这类会截断数值范围的激活函数:

import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
import numpy as np

model = Sequential([
    # 输入层接收4维特征,隐藏层参数可根据映射复杂度自行调整
    Dense(32, activation='relu', input_shape=(4,)),
    Dense(64, activation='relu'),
    Dense(32, activation='relu'),
    # 输出层直接返回4维结果,对应你需要的4个坐标值
    Dense(4, activation='linear')
])

# 回归任务用MSE作为损失函数即可,优化器选通用的Adam
model.compile(optimizer='adam', loss='mse', metrics=['mae'])

训练与推理逻辑

  • 训练流程和普通回归任务完全一致,直接将整理好的特征、标签传入model.fit()即可,训练轮次、批次大小根据你的数据集规模调整
  • 推理时传入形状符合(批次大小, 4)的旧坐标数组,模型会直接返回形状为(批次大小, 4)的预测结果,输出顺序严格和你训练时的标签顺序一致,即依次为新x1、新y1、新x2、新y2
# 单样本推理示例
test_coord = np.array([[0, 0, 4, 4]]) # 对应旧坐标(0,0)、(4,4)
predict_result = model.predict(test_coord, verbose=0)
new_x1, new_y1, new_x2, new_y2 = predict_result[0]

优化提示

  • 如果你的坐标数值跨度较大,建议先对输入特征、标签做min-max归一化或者z-score标准化,能明显加快模型收敛速度、提升预测精度,推理后再做反归一化就能得到真实坐标值
  • 只有当你需要给不同坐标值的预测设置不同损失权重时,才需要用函数式API拆分多输出分支,当前需求用单输出层返回4个值的方案是最简洁、训练效率最高的

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.17 16:16:01