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

将XLS加速度计数据转换为Python类型适配TensorFlow Lite模型

加速度计Excel数据转TensorFlow Lite输入格式解决方案

需求背景

已将加速度计数据保存至Excel工作表,需将数据转换为类似C结构体格式的Inputs数组和Outputs数组,用于TensorFlow Lite模型训练。Excel包含5条训练数据,每条数据对应X、Y、Z轴各8个采样值,以及1个输出值。

完整转换代码

import pandas as pd
import numpy as np

# 读取Excel数据
xls = pd.read_excel('TestVals.xls', header=None)

# ***** Convert data here *****
# 配置参数
total_samples = 5
axis_sample_count = 8

# 拆分X、Y、Z轴采样数据,转换为对应C类型的numpy数据(s16 → int16)
x_axis_data = xls.iloc[:, 0:axis_sample_count].values.astype(np.int16)
y_axis_data = xls.iloc[:, axis_sample_count:2*axis_sample_count].values.astype(np.int16)
z_axis_data = xls.iloc[:, 2*axis_sample_count:3*axis_sample_count].values.astype(np.int16)

# 构造模拟C结构体的结构化数组
Inputs = np.zeros(total_samples, dtype=[
    ('XInput', np.int16, (axis_sample_count,)),
    ('YInput', np.int16, (axis_sample_count,)),
    ('ZInput', np.int16, (axis_sample_count,))
])

# 填充输入数据
for idx in range(total_samples):
    Inputs[idx]['XInput'] = x_axis_data[idx]
    Inputs[idx]['YInput'] = y_axis_data[idx]
    Inputs[idx]['ZInput'] = z_axis_data[idx]

# 提取并转换输出数据(u8 → uint8)
Outputs = xls.iloc[:, -1].values.astype(np.uint8)

# 模型训练(若模型需要扁平化输入,可拼接数据)
# Inputs_flat = np.hstack([x_axis_data, y_axis_data, z_axis_data])
# model = create_model()
# model.fit(Inputs_flat, Outputs)

说明

  1. Excel结构假设:默认每行数据顺序为X0~X7, Y0~Y7, Z0~Z7, 输出值,若你的Excel列顺序不同,需调整iloc的列索引范围。
  2. 数据类型对应:C语言的s16对应numpy的int16,u8对应uint8,保证数据类型匹配。
  3. 模型输入适配:若你的TensorFlow模型需要二维扁平化输入(如每个样本24个特征),可使用np.hstack将X、Y、Z数据拼接成二维数组后传入model.fit。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 08:12:12