-
Notifications
You must be signed in to change notification settings - Fork 355
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
Interactive playground for einops #340
Comments
Hey @arogozhnikov! I would love to help contribute to this if you're open to it |
@zachlipp yes, some help would be great. FYI I expect this to be challenging: I didn't see jupyterlite and mkdocs being co-deployed. Prefect solution is to have jupyterlite and notebooks being stored in different repos: after loading in browser jupyterlite would download fresh notebooks from einops repository. This would be very reliable and simple to maintain. |
I think other projects would also be interested in just relying on some static server (e.g. hosted at github pages) if they could just provide a folder with notebooks. |
This sounds interesting. If I understand right, what you're looking for is:
Does this sound about right? If so, I can get started on a proof of concept in a new repo under my username and we can figure out where it lives in the long term later |
@zachlipp yes, this would be great setup if it works |
@arogozhnikov I'm making some progress here! One thing to think about: When should we overwrite the files the user has downloaded? I don't think overwriting the notebooks each time the user refreshes the page is a good user experience. Maybe we get the git hash of the latest commit when we download the files, store the hash, then prompt the user to update if we see there's a new hash on the main branch? |
Wow, great to hear that. I normally don't expect js playgrounds to store my results, I think this would work.
Yes, that sounds a a good tradeoff. |
I've spent a few more hours on this, and you're right, it's pretty complicated. I am writing a lot of javascript and I am far from a javascript expert. One thing to flag: Most of the existing tutorials cannot work because pytorch isn't yet supported in pyodide. This is an area of active discussion here pyodide/pyodide#1625 Once I have a hosted environment that can execute some of the examples (I'm close!), I'll let you know and we can decide on appropriate steps to take from there |
yes, we should only plan for two notebooks with numpy (basic into and pack/unpack). Completely fine for playground, and I don't expect DL frameworks to target WASM anytime soon |
I totally agree :) |
heyhey @zachlipp how is the progress? i've tried this link: zachlipp.github.io/einops-documentation/lab/index.html that's what appears in chrome console:
|
Hey @arogozhnikov! Yeah, it's not quite there. I could use some assistance from someone who knows frontend better than I do (e.g. how to work with |
Here's what I see as the next steps:
I am trying to complete these in roughly this order; I definitely welcome help from folks with more frontend experience |
I want to use interactive notebooks as an intro to einops, currently there are two versions: on github, and converted version in docs.
Only two notebooks work in jupyterlite (basic operations, and pack/unpack), but that's already enough for an intro.
Trying to figure out a simple setup to
The text was updated successfully, but these errors were encountered: