【问题标题】:Low Pass Filter on TF Keras Model InputsTF Keras 模型输入上的低通滤波器
【发布时间】:2021-04-03 20:18:41
【问题描述】:
有没有一种方法可以对 Keras 模型的输入应用低通滤波器?我有 4 个嘈杂的传感器数据输入,我很好奇是否可以在将其导出以使用 ONNX 进行推理之前将其构建到模型中,或者是否需要在模型之外对其进行过滤。
我对 ML 很陌生,但目前我的模型在模型之前运行低通时运行完美。我的目标是通过将模型直接附加到传感器输出来限制用户错误。
【问题讨论】:
标签:
python
tensorflow
keras
linear-regression
onnx
【解决方案1】:
不确定这是否有帮助,但由于您使用的是 Keras,因此您可以在输入层和模型的其余部分之间包含一个 Lambda 层。 Lambda 层允许您在模型输入上运行任意 Tensorflow 代码,因此理论上您可以在此 Lambda 层中实现您的过滤器,前提是您可以使用 Tensorflow 原语执行此操作。
例如,考虑以下代码:
input_layer = keras.Layers.Input(shape=(signal_length,no_channels))
sig_diff = keras.Layers.Lambda(lambda x: x[:,1:] - x[:,:-1])(input_layer)
conv_1 = keras.Layers.Conv1D(5)(sig_diff)
#rest of model goes here
在这个非常简单的示例中,我在将输入信号传递给某种卷积模型之前对其进行差分。您也许可以像上面那样在 lambda 层中实现低通滤波器,这应该可以解决问题。