Skip to content
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

Adds GTensor.where function to gtensor and unit tests. #55

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

LauBritoMedina
Copy link
Collaborator

Added GTensor.where function to gtensor library and unit tests.
As in tf.where function, it returns the elements either of the gtensor or g2 depending on the condition provided.
If the condition is true, it selects the element from the gtensor, otherwise selects from g2.
If the dimensions of the gtensor are different from those of g2, substracted dimensions are broadcasted.

['pos', 'repSize'],
);

const condition = tf.tensor([1, 0, 0, 1, 1, 0], [3, 2], 'bool');
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When you define a 3,2 matrix, best to format it as such to avoid reader having to reflow the tensor. :)

const g1bigLikeG2 = g1big.transposeLike(g2big);

const shape = Object.values(g1bigLikeG2.gshape()) as number[];
const conditionBig = condition.broadcastTo(shape);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's an issue here: the condition should be a named Tensor, that way we know how it will be broadcast. Otherwise depending on ordering of dimensions, the broadcast result will be different.

I think conceptually what one wants from a named tensor where is that G and G2 intersect, and where intersects with that intersection; that way you know what will broadcast and how it will look over the different dimensions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants