ipex-llm
ipex-llm copied to clipboard
Chronos : List the input data type of forecaster and locate some dismatch
Nowdays, input data types for different methods in BaseForecaster and AutoformerForecaster is different and is confusing. The following table lists the support data types of each method:
Method | numpy input | loader input | tsdataset instance | xshard input |
---|---|---|---|---|
BaseForecaster.fit | ✔ | ✔ | ✔ | ✔ |
AutoformerForecaster.fit | ✔ | ✔ | ❌ | ❌ |
BaseForecaster.tune | ✔ | ❌ | ❌ | ❌ |
AutoformerForecaster.tune | ✔ | ❌ | ❌ | ❌ |
BaseForecaster.predict | ✔ | ✔ | ✔ | ✔ |
AutoformerForecaster.predict(*) | ✔ | ✔ | ❌ | ❌ |
BaseForecaster.predict_with_onnx | ✔ | ✔ | ✔ | ❌ |
AutoformerForecaster.predict_with_onnx(×) | - | - | - | - |
BaseForecaster.predict_with_openvino | ✔ | ❌ | ❌ | ❌ |
AutoformerForecaster.predict_with_onnx(×) | - | - | - | - |
BaseForecaster.evaluate | ✔ | ✔ | ✔ | ✔ |
AutoformerForecaster.evaluate(*) | ✔ | ✔ | ❌ | ❌ |
BaseForecaster.predict_interval | ✔ | ✔ | ✔ | ❌ |
AutoformerForecaster.predict_interval | ✔ | ✔ | ❌ | ❌ |
Note: × means don't have this method, * means there maybe some dismatch in metrics.
For fit
and predict_interval
, there are two parameters : data and validation_data(or val_data)
Method | numpy input | loader input | tsdataset instance | xshard input |
---|---|---|---|---|
data for BaseForecaster.fit | ✔ | ✔ | ✔ | ✔ |
validation_data for BaseForecaster.fit | ✔ | ✔ | ❌ | ❌ |
data for AutoformerForecaster.fit | ✔ | ✔ | ❌ | ❌ |
validation_data for AutoformerForecaster.fit(x) | - | - | - | - |
data for BaseForecaster.predict_interval | ✔ | ✔ | ✔ | ❌ |
val_data for BaseForecaster.predict_interval | ✔ | ✔ | ✔ | ❌ |
data for AutoformerForecaster.predict_interval | ✔ | ✔ | ❌ | ❌ |
val_data for AutoformerForecaster.predict_interval | ✔ | ✔ | ❌ | ❌ |
Note: AutoformerForecaster don't support validation_data in fit now (#5865)
some methods in BaseForecaster but don't in Autoformer : get_model() (#5865)
In next (several) PR, I may make it becomes:
Method | numpy input | loader input | tsdataset instance | xshard input |
---|---|---|---|---|
BaseForecaster.fit | ✔ | ✔ | ✔ | ✔ |
AutoformerForecaster.fit | ✔ | ✔ | ✔(#5846) | ❌ |
BaseForecaster.tune | ✔ | ❌ | ❌ | ❌ |
AutoformerForecaster.tune | ✔ | ❌ | ❌ | ❌ |
BaseForecaster.predict | ✔ | ✔ | ✔ | ✔ |
AutoformerForecaster.predict(*) | ✔ | ✔ | ✔(#5846) | ❌ |
BaseForecaster.predict_with_onnx | ✔ | ✔ | ✔ | ❌ |
AutoformerForecaster.predict_with_onnx(×) | - | - | - | - |
BaseForecaster.predict_with_openvino | ✔ | ✔(#5846) | ✔(#5846) | ❌ |
AutoformerForecaster.predict_with_onnx(×) | - | - | - | - |
BaseForecaster.evaluate | ✔ | ✔ | ✔ | ✔ |
AutoformerForecaster.evaluate(*) | ✔ | ✔ | ✔(#5846) | ❌(?) |
BaseForecaster.predict_interval | ✔ | ✔ | ✔ | ❌ |
AutoformerForecaster.predict_interval | ✔ | ✔ | ✔(#5846) | ❌ |
Method | numpy input | loader input | tsdataset instance | xshard input |
---|---|---|---|---|
data for BaseForecaster.fit | ✔ | ✔ | ✔ | ✔ |
validation_data for BaseForecaster.fit | ✔ | ✔ | ✔(#5516) | ✔(#5846) |
data for AutoformerForecaster.fit | ✔ | ✔ | ✔(#5846) | ❌ |
validation_data for AutoformerForecaster.fit(x) | ✔(#5865) | ✔(#5865) | ✔(#5865) | ❌ |
data for BaseForecaster.predict_interval | ✔ | ✔ | ✔ | ❌ |
val_data for BaseForecaster.predict_interval | ✔ | ✔ | ✔ | ❌ |
data for AutoformerForecaster.predict_interval | ✔ | ✔ | ✔(#5846) | ❌ |
val_data for AutoformerForecaster.predict_interval | ✔ | ✔ | ✔(#5846) | ❌ |
@TheaperDeng How do you think of this?
@TheaperDeng How do you think of this?
yeah, I think that should be reasonable to first make sure numpy, loader and tsdatset is supported. I think you may split it into 2 PRs since there are quite a few support we need to do here.
Some of them is on-going in this PR, I will handle them: https://github.com/intel-analytics/BigDL/pull/5516