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

如何搭建autoencoder网络实现1D信号的频率、平均振幅、时间参数预测

1D信号参数预测Autoencoder实现适配建议

一、数据预处理步骤

  • 单份文件读取规则:逐行读取文件内容,前3行的第二列值依次提取为标注参数[frequency, mean_amplitude, time],所有行的第一列值拼接为1D信号序列,若不同文件的信号长度不一致,统一做截断/补零对齐到固定长度(如你提供的样例信号长度为32,可统一对齐到32)。
  • 1000份文件全部处理完成后,得到两组数组:输入特征X形状为(1000, 信号固定长度, 1),标注Y形状为(1000, 3),再按8:2比例拆分训练集和测试集。
  • 可选优化:对输入信号做归一化,对输出的三类标注参数做标准化,预测时再反归一化得到实际数值,可提升模型收敛速度和精度。

二、网络结构适配修改

你找到的参考代码是针对2D图像重建任务的自编码器,你的场景是1D信号回归预测,不需要重建输入,可复用编码器的特征提取能力,修改输出头适配三类参数预测即可,适配后代码如下:

from tensorflow.keras import layers, Model

# 此处修改为你对齐后的信号实际长度
signal_length = 32
input = layers.Input(shape=(signal_length, 1))

# 替换原2D卷积为1D卷积适配序列数据
x = layers.Conv1D(32, 3, activation="relu", padding="same")(input)
x = layers.MaxPooling1D(2, padding="same")(x)
x = layers.Conv1D(32, 3, activation="relu", padding="same")(x)
x = layers.MaxPooling1D(2, padding="same")(x)

# 特征展平后接全连接层输出3个预测参数
x = layers.Flatten()(x)
# 回归任务用linear激活函数
output = layers.Dense(3, activation="linear")(x)

# 编译模型,回归任务用均方误差损失,替换原二分类交叉熵
model = Model(input, output)
model.compile(optimizer="adam", loss="mse", metrics=["mae"])
model.summary()

三、模型训练逻辑

训练时输入为信号特征,标签为对应标注参数,不要沿用原代码输入即标签的重建逻辑:

model.fit(
    x=train_X,
    y=train_Y,
    epochs=50,
    batch_size=16,
    shuffle=True,
    validation_data=(test_X, test_Y)
)

可选调优方向

  • 数据量较小可加入Dropout层、L2正则化防止过拟合
  • 效果不佳可调整卷积核数量、卷积核尺寸、增加全连接隐藏层

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 14:24:01