Git Product home page Git Product logo

Comments (4)

lukaszkaiser avatar lukaszkaiser commented on May 3, 2024 1

I think the hack is perfectly fine! Since it sounds like it worked, I'm closing the issue for now, but please re-open if more is needed.

from trax.

lukaszkaiser avatar lukaszkaiser commented on May 3, 2024

The state tree has usually the same form as the model tree, so state[-1] could be the state of the last layer. But the state does not contain activations -- usually (for most layers) it's just empty.

To have the last activations in state, you could just put them there in the forward_with_state method of the layer. We just today implemented a caching layer (for decoding) which does that, but only runs the layer once. What you want is something very similar, but simply running and putting the result in the state each time. Take a look at this code and let us know - I'm happy to help more!
https://github.com/google/trax/blob/master/trax/layers/combinators.py#L645

from trax.

prajdabre avatar prajdabre commented on May 3, 2024

Hi Lukasz,
Thank you for your reply.
I basically understood what you meant. Although I am experienced with TF, I am new to trax and was not able to pinpoint the location where I should be saving states.
Nevertheless, I thought of a quick workaround.
I created a new method called ReformerLMDocRep in which I deleted the dense and logsoftmax from the Map.
Naturally I had to delete the corresponding weights from the optimizer state that is loaded from a pretrained model.
This allowed me to return the output of the last layer of the model as "logits".
I imagine that this is the representation of the last token (and hence the document vector that I think I am looking for.)
Kindly let me know if you think that my hack is appropriate or not.
Of course if you give me the necessary instructions then I will be able to code up a better solution.
Thanks again for your help as I was able to better understand trax.

from trax.

prajdabre avatar prajdabre commented on May 3, 2024

Thanks for the confirmation. Ok to close.

from trax.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.