гид
Введение в PlotNeuralNet
PlotNeuralNet — это инструмент для визуализации нейронных сетей на GitHub. Он использует Python для преобразования структуры сети, определенной в файле .py, в файл .tex. Наконец, ее можно преобразовать в .pdf и другие формы с помощью таких инструментов, как TeXworks для отобразить структуру сети.
1. Установите Texlive
Нажмите http://www.tug.org/texlive/ , чтобы ввести ссылку для загрузки и выбрать DVD.
选择 загрузка ISO-образа TeX Live и запись собственного DVD。
Выберите загрузку с ближайшего зеркала CTAN.
Выберите texlive2021.iso для загрузки.
Загрузите файл образа ISO, дважды щелкните его, чтобы открыть, а затем дважды щелкните файл install-tl-windows.bat, чтобы войти в мастер установки. Обратите внимание на изменение пути установки, отметив опцию установки фронтальной панели TeXworks. конец, а затем приходится долго ждать процесса установки.
2. Загрузите набор инструментов PlotNeuralNet.
ссылка на github: https://github.com/HarisIqbal88/PlotNeuralNet
3. Запустите встроенный тестовый код.
Используйте pycharm или другой редактор Python, чтобы открыть проект PlotNeuralNet, введите путь к pyexamples, откройте файл unet.py и запустите его напрямую. В это время по текущему пути будет создан файл unet.tex.
Откройте программу-редактор TeXworks, выберите файл, чтобы открыть файл unet.tex по пути, который вы только что открыли.
Нажмите зеленую стрелку, чтобы запустить, и файл unet.pdf будет создан и открыт напрямую. Если отображение неполное, вы можете нажать, чтобы адаптироваться к странице или увеличить окно. Результаты следующие.
Видно, что выходная сетевая диаграмма очень красива, и H, W и C каждого слоя могут быть определены сами по себе.
4. Запустите собственный тестовый код.
Одним из недостатков PlotNeuralNet является то, что он напрямую генерируется и определяется пользователями с помощью кода. С ним сложно работать и он не очень практичен. Однако он лучше подходит для создания бумажных иллюстраций. Давайте кратко представим, как его использовать с помощью специального тестового кода (аналогично U-Net):
import sys
sys.path.append('../')
from pycore.tikzeng import *
# 自定义一个网络结构
arch = [
to_head('..'),
to_cor(),
to_begin(),
# 写入网络结构,其他代码不要改动
to_Conv("conv1", 64, 3, offset="(0,0,0)", to="(0,0,0)", height=128, depth=128, width=3),
# 参数列表:名字;左下角数字大小和厚度;相对于上一幅图的 x,y,z 坐标;对应放在 conv1 的 东(右边)边;高度;宽度;厚度
to_Conv("conv2", 64, 32, offset="(5,0,0)", to="(conv1-east)", height=64, depth=64, width=32),
to_Conv("conv3", 64, 32, offset="(5,0,0)", to="(conv2-east)", height=32, depth=32, width=64),
to_Conv("conv4", 64, 32, offset="(5,0,0)", to="(conv3-east)", height=16, depth=16, width=128),
to_Conv("conv5", 64, 32, offset="(5,0,0)", to="(conv4-east)", height=16, depth=16, width=128),
to_Conv("conv6", 64, 32, offset="(5,0,0)", to="(conv5-east)", height=32, depth=32, width=64),
to_Conv("conv7", 64, 32, offset="(5,0,0)", to="(conv6-east)", height=64, depth=64, width=32),
to_Conv("conv8", 64, 3, offset="(5,0,0)", to="(conv7-east)", height=128, depth=128, width=3),
# 箭头连接
to_connection("conv1", "conv2"),
to_connection("conv2", "conv3"),
to_connection("conv3", "conv4"),
to_connection("conv4", "conv5"),
to_connection("conv5", "conv6"),
to_connection("conv6", "conv7"),
to_connection("conv7", "conv8"),
# 跳跃连接
to_skip("conv2", "conv7"),
to_end()
]
def main():
namefile = str(sys.argv[0]).split('.')[0]
to_generate(arch, namefile + '.tex')
if __name__ == '__main__':
main()
результат операции:
5. Вывод
- В обычных обстоятельствах, когда мы смотрим на структуру пользовательской сети, мы в основном смотрим на методы соединения между модулями, изменения карты функций, изменения параметров и т. д., тогда как PlotNeuralNet — это инструмент, который полностью отделен от реально существующей сети. и все параметры в нем настраиваются.
- Хотя диаграмма структуры нейронной сети, созданная PlotNeuralNet, выглядит лучше, чем другие инструменты, начать работу с ней относительно сложно, и есть только несколько простых соединений и других операций. Чтобы познакомиться с относительно сложной сетью, требуется гораздо больше времени, чем для ее использования. это непосредственно, чтобы нарисовать диаграмму.время.
- Я могу только сказать, что вы можете попробовать это при создании бумажных иллюстраций. В других ситуациях это совершенно не нужно. Я считаю, что должно быть какое-то программное обеспечение, которое может рисовать более красивые диаграммы нейронных сетей, чем PlotNeuralNet.