如何在ML.Net中实现保留隐状态的循环神经网络连续预测
ML.Net RNN类模型连续循环预测实现说明
ML.Net 原生PredictionEngine默认设计为无状态执行,每次调用Predict方法后会自动重置所有模型中间层状态,没有提供原生的RNN/LSTM/GRU隐藏状态留存接口。TimeSeriesEngine仅支持内置SSA时序预测模型,无法适配自定义ONNX格式的循环神经网络模型。
该场景可以通过两种可行方案实现需求:
- 调整ONNX模型导出配置,将RNN层的隐藏状态显性设为独立的输入、输出节点。每次执行单步预测后,取出输出的隐藏状态值,作为下一次预测的输入节点参数传入,手动实现状态在多轮预测间的传递,这是目前最易用的实现方式。
- 绕过
PredictionEngine封装,直接调用ML.Net底层依赖的ONNX Runtime会话接口,手动控制隐藏状态张量的读写和留存,该方式灵活性更高,可适配更复杂的状态调度需求。
内容的提问来源于stack exchange,提问作者J.A
相关产品推荐
相关产品推荐

