Skip to content

Latex code for making neural networks diagrams. Make a poetry project

License

Notifications You must be signed in to change notification settings

topher097/PlotNeuralNet

 
 

Repository files navigation

PlotNeuralNet

DOI

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.

Examples

Following are some network representations:

Holistically-Nested Edge Detection (view on Overleaf)

Getting Started

  1. Install the following packages on Ubuntu.
  • Ubuntu 16.04
sudo apt-get install texlive-latex-extra
  • Ubuntu 18.04.2 Base on this website, please install the following packages.
sudo apt-get install texlive-latex-base
sudo apt-get install texlive-fonts-recommended
sudo apt-get install texlive-fonts-extra
sudo apt-get install texlive-latex-extra
  • Windows
  1. Download and install MikTeX.

  2. Download and install bash runner on Windows, recommends Git bash or Cygwin(https://www.cygwin.com/)

  3. Execute the example as followed.

cd pyexamples/
bash ../tikzmake.sh test_simple
  • Docker
  1. Install Docker. If using Windows, you can install Docker Desktop for Windows, or use WSL to install Docker CE for Ubuntu.

    • The MikTex docker image is used as the base stage for the docker build, which is based on Ubuntu 20.04 LTS
  2. Run the docker_build.sh file using the following command to build the docker image (from the root directory of this repo). You need bash to run this script. If using Windows, you can install Git bash or Cygwin; WSL and Linux have bash built-in.

bash build_pnn_docker.sh
  1. Run the container in docker (from a WSL or Linux terminal) with the following command (from the root directory of this repo). Ensure the command is being run as admin of the machine.
bash start_pnn_docker.sh

TODO

  • Python interface
  • Add easy legend functionality
  • Add more layer shapes like TruncatedPyramid, 2DSheet etc
  • Add examples for RNN and likes.

Latex usage

See examples directory for usage.

Python usage

First, create a new directory and a new Python file:

$ mkdir my_project
$ cd my_project
vim my_arch.py

Add the following code to your new file:

import sys
sys.path.append('../')
from pycore.tikzeng import *

# defined your arch
arch = [
    to_head( '..' ),
    to_cor(),
    to_begin(),
    to_Conv("conv1", 512, 64, offset="(0,0,0)", to="(0,0,0)", height=64, depth=64, width=2 ),
    to_Pool("pool1", offset="(0,0,0)", to="(conv1-east)"),
    to_Conv("conv2", 128, 64, offset="(1,0,0)", to="(pool1-east)", height=32, depth=32, width=2 ),
    to_connection( "pool1", "conv2"),
    to_Pool("pool2", offset="(0,0,0)", to="(conv2-east)", height=28, depth=28, width=1),
    to_SoftMax("soft1", 10 ,"(3,0,0)", "(pool1-east)", caption="SOFT"  ),
    to_connection("pool2", "soft1"),
    to_end()
    ]

def main():
    namefile = str(sys.argv[0]).split('.')[0]
    to_generate(arch, namefile + '.tex' )

if __name__ == '__main__':
    main()

Now, run the program as follows:

bash ../tikzmake.sh my_arch

About

Latex code for making neural networks diagrams. Make a poetry project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TeX 40.6%
  • Python 40.5%
  • Dockerfile 12.7%
  • Shell 6.2%