einops
excalidraw
Our great sponsors
einops | excalidraw | |
---|---|---|
17 | 371 | |
7,834 | 70,904 | |
- | 6.1% | |
8.2 | 9.5 | |
about 2 months ago | 5 days ago | |
Python | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
einops
-
Yorick is an interpreted programming language for scientific simulations
Thanks for the pointer. I can believe that a language that looks so different will find that different patterns and primitives are natural for it.
My experience from writing a lot of array-based code in NumPy/Matlab is that broadcasting absolutely has made it easier to write my code in those ecosystems. Axes of length 1 have often been in the right places already, or have been easy to insert. It's of course possible to create a big mess in any language; it seems likely that the NumPy code you saw could have been neater too.
In machine learning there can be many array dimensions floating around: batch-dims, sequence and/or channel-dims, weight matrices, and so on. It can be necessary to expand two or more dimensions, and/or line up dimensions quite carefully. Einops[1] has emerged from that community as a tool to succinctly express many operations that involve lots of array dimensions. You're likely to bump into more and more people who've used it, and again it seems there's some overlap with what Rank does. (And again, you'll see uses of Einops in the wild that are unnecessarily convoluted.)
[1] https://einops.rocks/ -- It works with all of the existing major array-based frameworks for Python (NumPy/PyTorch/Jax/etc), and the emerging array API standard for Python.
-
[D] Have their been any attempts to create a programming language specifically for machine learning?
Einops all the things! https://einops.rocks/
- Delimiter-First Code
-
[D] Any independent researchers ever get published/into conferences?
It depends on what are their main purposes. I know some figures who have done an amazing job in this field but never because of publications, e.g. https://github.com/lucidrains and https://github.com/rwightman, https://einops.rocks/
-
[D] Anyone using named tensors or a tensor annotation lib productively?
On tsalib's warp: this is very similar to einops. I think it might even be slightly more general. However, I'm honestly not sure to what extent tsalib is still maintained, as it looks like the most recent commit was about two years ago. (Which is a shame.)
-
A basic introduction to NumPy's einsum
Also see Einops: https://github.com/arogozhnikov/einops, which uses a einsum-like notation for various tensor operations used in deep learning.
https://einops.rocks/pytorch-examples.html shows how it can be used to implement various neural network architectures in a more simplified manor.
I would like to second that! I converted multiple of my lab mates into Einops just by having them browse through the tutorial in https://einops.rocks/ :)
-
Ask HN: What technologies greatly improve the efficiency of development?
This combined with something like einops [1] ( intuitive reshaping library) can be a huge time saver.
-
[D] What are your favorite tools to visualize/explain tensor operations?
einops: just look at the pretty visual GIF and be amazed
excalidraw
-
Tools that Make Me Productive as a Software Engineer
However, Notion and Obsidian can only help you write documentation. Well, how about some visuals? Let's talk about Excalidraw.
-
Rapier is a set of 2D and 3D physics engines written in Rust
Fun fact: I used GA in Excalidraw, and it's still powering some of the interactions! https://github.com/excalidraw/excalidraw/blob/master/package...
-
Ask HN: Anyone use a code to mindmap/flowchart tool?
I was happy to find out recently that there is a way to make Mermaid diagrams WYSIWYG / drag and drop editable that the open source https://excalidraw.com has and did I mention it's open source!? With a LLM, you can go full loop back to Mermaid again after a few rounds of manual editing. "What a time to be alive!"
- Show HN: Batch Image Manipulation Toolkit in Browser
-
Ask HN: What development tools are you using for your current project?
I'm working on a personal project and found myself looking for an alternative to Postman/Insomnia this morning. This made me realize i've been using the same tools for so long for work (mobile development, finance) that this project may be a good time to try out some new things.
Here are a few tools that i've been using lately that I really enjoy:
https://pocketbase.io/ - A dead-simple self-hosted firebase/supabase-like "backend in a box" using golang and sqlite. So far i've been really impressed. I've gone the route of extending the base offering with more go code and am really enjoying the experience.
https://excalidraw.com/ - An open source whiteboarding tool. Slick to use and after learning some keybinds I've gotten pretty fast at throwing together diagrams to explain things to people on my team. The killer piece though is that the filetype is just json, so I can source control my diagrams. Even better, their "export to png" function has a box to embed the json data _into_ the png, allowing me to slap the diagram in places that only accept images (think confluence) and still be able to change the diagram later if needed. 10/10.
https://docs.gitlab.com/ee/ci/ - Gitlab's CI/CD toolset is really impressive, and I've gotten really intimate with it's deeper features over the past year. I'd be curious though to hear from someone who's familiar with it vs it's competitors.
-
Penrose – Penrose
Sketch easy and go back to work...
- Rough.js: Create graphics with a hand-drawn, sketchy, appearance
- Database Fundamentals
- Show HN: Airdraw
-
Need help identifying a good open source data annotation tool
Also, a lot of image annotation is quite similar to vector editing and white boarding, so depending on what you need you might be able to adapt something like https://github.com/excalidraw/excalidraw (also MIT) for your purposes.
What are some alternatives?
tldraw - Infinite canvas.
draw.io - draw.io is a JavaScript, client-side editor for general diagramming.
mermaid - Generation of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown
obsidian-excalidraw-plugin - A plugin to edit and view Excalidraw drawings in Obsidian
docker-draw.io - Dockerized draw.io based on tomcat:9-jre11 & tomcat:9-jre8-alpine official image.
drawio-desktop - Official electron build of draw.io
venn.nvim - Draw ASCII diagrams in Neovim
mirotalk - 🚀 WebRTC - P2P - Simple, Secure, Fast Real-Time Video Conferences Up to 4k and 60fps, compatible with all browsers and platforms.
notion-auto-pull - Bash script to automatically download a notion workspace
perfect-freehand - Draw perfect pressure-sensitive freehand lines.
penpot - Penpot - The Open-Source design & prototyping platform
spacedeck-open - Spacedeck, a web based, real time, collaborative whiteboard application with rich media support