50

PlotNeuralNet: Latex Code for Drawing Neural Networks

 5 years ago
source link: https://www.tuicool.com/articles/hit/YBZZVfj
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

PlotNeuralNet

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:

2y26rmV.png!web

FCN-8

niEZfe7.png!web

VGG16

rmaeQ37.png!web

Holistically-Nested Edge Detection


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK