Skip to content
Discussion options

You must be logged in to vote

Hi @jduerholt, the main reason for setting transform=None is that we typically use L-BFGS-B to optimize the MLL of the model, and we can explicitly include those constraints in the optimization rather than relying on the default transformations to the real line used in gpytorch. We have found that to work better in most cases. The parsing logic for this lives here: https://github.com/pytorch/botorch/blob/main/botorch/optim/utils/model_utils.py#L99-L101

One downside is that if you simply used an unconstrained optimizer (such as Adam) to optimize BoTorch model's hyperparameters you'd have to make sure to handle the constraint manually. There is some related discussion here: #2542

It seems …

Replies: 1 comment 8 replies

Comment options

You must be logged in to vote
8 replies
@jduerholt
Comment options

jduerholt Sep 4, 2025
Collaborator Author

@Balandat
Comment options

Balandat Sep 4, 2025
Collaborator

@jduerholt
Comment options

jduerholt Sep 4, 2025
Collaborator Author

@Balandat
Comment options

Balandat Sep 5, 2025
Collaborator

@jduerholt
Comment options

jduerholt Sep 12, 2025
Collaborator Author

Answer selected by jduerholt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants