/PlotNeuralNet

Latex code for making neural networks diagrams

Primary LanguageTeXMIT LicenseMIT

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.

TODO

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

Latex Usage

see examples

PyUsage

mkdir my_project
cd my_project
vim my_arch.py

    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()

bash ../tikzmake.sh my_arch

Examples

Following are some network representations:

FCN-8

VGG16

Holistically-Nested Edge Detection