botorch icon indicating copy to clipboard operation
botorch copied to clipboard

Outcome transforms not properly handled when using `BatchedMultiOutputGPyTorchModel ` in `ModelListGP`

Open Balandat opened this issue 4 years ago • 1 comments

As reported in #640, automatic application of outcome transforms fails when using a SingleTaskGP in a ModelListGP container. The reason is that SingleTaskGP subclasses BatchedMultiOutputGPyTorchModelBatchedMultiOutputGPyTorchModel, and the posterior method of that class does some dimension wrangling that is not performed inside ModelListGP's posterior method: https://github.com/pytorch/botorch/blob/master/botorch/models/gpytorch.py#L320-L349

It's not exactly clear what the best way to handle this is - one way would be to call the individual posterior methods of the submodels and then combine the posteriors together rather than the MVNs - that would automatically take care of the outcome transforms. Then of course we'd likely have to implement a ModelListPosterior to provide the posterior interface.

Balandat avatar Dec 26 '20 23:12 Balandat

Is this still an issue? Since ModelListGP enforces num_outputs=1 on the sub-models, it seems like the dimension wrangling should not happen. Maybe this got resolved somewhere along the way

saitcakmak avatar Jun 28 '22 18:06 saitcakmak

This should get resolved by https://github.com/pytorch/botorch/pull/1854

saitcakmak avatar Jun 06 '23 22:06 saitcakmak

Closed by #1854 (let me know if that's not right)

esantorella avatar Jun 12 '23 19:06 esantorella