PlotNeuralNet README

The project's README from github.com/HarisIqbal88/PlotNeuralNet. As one markdown file: README.md.

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:

FCN-8 (view on Overleaf)

FCN-32 (view on Overleaf)

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](https://miktex.org/download).
2. Download and install bash runner on Windows, recommends [Git bash](https://git-scm.com/download/win) or Cygwin(https://www.cygwin.com/)
  1. Execute the example as followed.
    cd pyexamples/
    bash ../tikzmake.sh test_simple
    

TODO

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

PlotNeuralNet (HarisIqbal88/PlotNeuralNet)

Searching Database…

Что это такое?PlotNeuralNet — это набор кода на LaTeX для отрисовки схем нейронных сетей в отчётах и презентациях, с готовыми примерами вроде FCN-8 и FCN-32.
То есть рисовать это вручную в редакторе не нужно — как всё это работает?Вы описываете свою сеть в коде, а TikZ отрисовывает её в виде векторной схемы: можно писать LaTeX напрямую (в каталоге examples показано, как это делается) или воспользоваться входящим в комплект Python-интерфейсом.
Как это запустить?Сначала установите инструменты для работы с TeX: пакеты из списка для Ubuntu 16.04/18.04, либо MikTeX плюс bash-окружение вроде Git bash или Cygwin на Windows. Затем запустите пример командой bash ../tikzmake.sh myarch.
Нужно ли быть специалистом по LaTeX, чтобы этим пользоваться?Нет. Помимо обычного использования LaTeX, показанного в каталоге examples, есть Python-интерфейс: напишите скрипт вида myarch.py с описанием своих слоёв, а затем выполните bash ../tikzmake.sh myarch.
А что он пока не умеет рисовать?В списке TODO всё ещё значатся удобная функция легенды, больше форм слоёв, таких как TruncatedPyramid и 2DSheet, и примеры для сетей типа RNN; сам Python-интерфейс уже готов.
Будет ли это работать на моём Mac, или только Linux и Windows?В README шаги установки есть только для Ubuntu 16.04/18.04 и для Windows через MikTeX плюс Git bash или Cygwin; про macOS там не упоминается.
Какие сети показаны в готовых примерах?В README в качестве примеров описаний сетей перечислены FCN-8, FCN-32 и Holistically-Nested Edge Detection, а чтобы точно увидеть, как устроен каждый из них, отсылают к каталогу examples.
Почему автор выложил это в открытый доступ?Чтобы улучшениями делились: в README автор просит пользователей возвращать свои доработки и исправления ошибок обратно в проект, чтобы код был полезен большему числу людей.
Size
2.2 MB
Stars
25K
Age
8y
Commits · 90 Days