-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add category onehot encoder for both ECD and GBM #3057
Conversation
for more information, see https://pre-commit.ci
…to gbm-encoders
for more information, see https://pre-commit.ci
for more information, see https://pre-commit.ci
…to gbm-encoders
I would remove the current mechanism for sparse embedding as it does the same thing functionally but is more expensive (as it keeps the matrix of binary values in memory) |
Good point, @w4nderlust. How would you want to implement that in practice, given backwards compatibility? We could, for example, mark it as deprecated similar to what we did for the resnet and vit legacy image encoders. Or did you have something else in mind? |
We could deprecate the |
@w4nderlust my main worry would be if the existing sparse encoder / embed module adds any parameters to the saved state dict of the model. If so, then removing the module could break older Ludwig models. If not, then we could transparently upgrade models trained with the sparse encoder to use the new onehot encoder. |
for more information, see https://pre-commit.ci
…to gbm-encoders
for more information, see https://pre-commit.ci
…to gbm-encoders
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
This PR enables GBMs to support any vector-like input feature (vector, sequence, text, timeseries, even image or audio) provided there is a fixed (non-trainable) encoder available.
Follow-up tasks (outside the scope of this PR):
sparse
encoder, as it is essentially a more expensive version ofonehot
.