Producing Pretty Papers, a Programmer's Guide
I’ve often wondered, when reading research papers, how exactly it is that people make such pretty figures like this. I decided to look into it, and start collecting resources here.
Academic Project Page Template Related, a nice github repo for creating slick research project web pages.
Possible tools
Tikz
Tikz: make graphs natively in LaTeX.
- https://tikz.dev/tutorial
PlothNeuralNet
Latex code for drawing neural networks for reports and presentation. Have a look into examples to see how they are made. Additionally, lets consolidate any improvements that you make and fix any bugs to help more people with this code.
Essentially, a collection of functions that output tikz stuff you can copy into your LaTeX.
Sources
Asked Researchers on Slack
Asked various devs on Slack, here are misc. graphing tools mentioned by various developers:
- https://mermaid.js.org/
- https://inkscape.org/
- https://affinity.serif.com/en-us/designer/
- https://tikz.dev/
- draw.io
Searching variations on “Plot Neural Network Architecture”
this Data Science stack exchange discussion mentions a few options.
This Neptune AI post points out a few options.
Machine Learning Mastery tutorial explaining how to save out a PyTorch model and visualize using Netron.
TowardsAI says to use PlotNeuralNet with ChatGPT. The takeaway for me is to use PlotNeuralNet
TowardsDataScience article recommending gravis
github repo “Tools to Design or Visualize Architecture of Neural Network “, last updated 3 years ago, shows lots of examples, seems to have lifted from the stack exchange discussions.
Options:
- PyTorchViz
- TensorBoard
- TorchView
- Netron
- Torchviz
- NNViz
- Net2Viz Needs Keras. Project looks dead. Online demo here.
- NeuralPlot. Again looks dead.
- NN-SVG looks pretty slick, a few mentions above.
- demo running in browser looks quite cool. And lets you just define the arch right there.
- gravis “Its name stands for graph visualization and its purpose is to create interactive 2D and 3D plots of graphs and networks”. Neat!
- PlotNeuralNet gets a lot of mentions, and has pretty results.
- TensorSpace. Lets you make 3D JS visuals.
- BertViz is relevant here I guess!
I think the tl;dr is that PlotNeuralNet requires you to manually specify things, but looks the prettiest.
Second-prettiest might be the NN-SVG, which looks really easy to use as well.
Changelog
- 2024-03-07: creation.
- 2024-04-18: added some new library links, and sections.