ipex-llm icon indicating copy to clipboard operation
ipex-llm copied to clipboard

Chronos : List the input data type of forecaster and locate some dismatch

Open rnwang04 opened this issue 1 year ago • 3 comments

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)

rnwang04 avatar Sep 19 '22 09:09 rnwang04

@TheaperDeng How do you think of this?

rnwang04 avatar Sep 19 '22 09:09 rnwang04

@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.

TheaperDeng avatar Sep 19 '22 09:09 TheaperDeng

Some of them is on-going in this PR, I will handle them: https://github.com/intel-analytics/BigDL/pull/5516

TheaperDeng avatar Sep 19 '22 09:09 TheaperDeng