手把手教你PlotNeuralNet 的安装与使用(不使用Git)

网上大部分资料都建议先安装 MiKTeX、Git 和 PlotNeuralNet,然后通过 Git 执行一些命令来生成神经网络结构图。但其实,不使用 Git 也可以正确生成 LaTeX 文件并编译为 PDF 文件。

参考资料
卷积神经网络工具PlotNeuralNet在Windows安装并使用
使用PlotNeuralNet绘制深度学习网络图
PlotNeuralNet_2_概览与优化

PlotNeuralNet 是一个基于 LaTeX 的工具,用于绘制深度学习网络的结构图,它依赖于 LaTeX 环境,因此需要先安装 LaTeX

一、安装 LaTeX 环境

在这里插入图片描述

二、下载 PlotNeuralNet

先创建一个文件夹,使用cmd进入,输入以下命令(git是我很早以前装的,你可以直接下载解压PlotNeuralNet到创建的文件夹中)

git clone https://github.com/HarisIqbal88/PlotNeuralNet.git

在这里插入图片描述

三、创建网络结构文件

1.使用pycharm打开该文件

在这里插入图片描述

2.创建Python文件

创建一个文件夹,再创建一个 Python文件(例如 test.py),并使用 pycore.tikzeng 模块定义网络结构

确保文件结构是这样的,不然可能会导致 LaTeX 找不到 init.tex 文件,从而引发错误
PlotNeuralNet/
├── layers/
│ ├── init.tex
│ └── …
├── my_project/
│ ├── test.py

运行之前,你需要在当前目录下放入一张图片

在这里插入图片描述

import sys
from pycore.tikzeng import *

arch = [
    to_head('..'),
    to_cor(),
    to_begin(),

    # 定义网络结构
    to_input('input.jpg', name="input"),
    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()

3.运行脚本生成 LaTeX文件

运行test.py就会生成对应的 test.tex 文件

4.编译 LaTeX文件为 PDF

使用cmd进入到当前文件夹,执行以下命令

pdflatex test.tex

运行过程中会弹出宏包安装框,选择安装就可以了
在这里插入图片描述
在这里插入图片描述

5.查看生成的PDF文件

在这里插入图片描述
在这里插入图片描述

超级简单的方法(融合3、4)

可以使用以下代码直接生成 LaTeX 文件并编译为 PDF 文件,同时清理不必要的文件。

import subprocess
import sys

from pycore.tikzeng import *

arch = [
    to_head('..'),
    to_cor(),
    to_begin(),

    # 定义网络结构
    .....
    to_end()
]

def main():
    # 获取当前脚本的文件名(不包含扩展名)
    filename = os.path.basename(__file__).split('.')[0]
    # 生成 LaTeX 文件
    to_generate(arch, filename + '.tex')
    # 编译 LaTeX 文件为 PDF
    try:
        subprocess.run(['pdflatex', filename + '.tex'], check=True)
    except subprocess.CalledProcessError as e:
        print(f"Error occurred while running pdflatex: {e}")
    os.remove(filename + '.aux')
    os.remove(filename + '.log')
    os.remove(filename + '.tex')
if __name__ == '__main__':
    main()
### ST-GCN 时空图卷积网络复现程 #### 1. 理解ST-GCN架构 ST-GCN(Spatial-Temporal Graph Convolutional Network)是一种用于处理序列数据的空间-时间图卷积网络。该模型通过构建节点之间的空间关系和时间依赖来捕捉动态模式。对于动作识别等任务,这种结构能够有效提取特征并提高准确性[^1]。 #### 2. 准备环境安装依赖库 为了实现ST-GCN,在Python环境中需先设置好必要的软件包。通常情况下会使用TensorFlow或PyTorch作为深度学习框架,并配合其他辅助工具如NumPy、Matplotlib等完成开发工作。 ```bash pip install tensorflow numpy matplotlib opencv-python h5py sklearn pandas tqdm ``` #### 3. 获取anno数据集 Anno是一个常用的动作识别视频数据集之一。可以从官方网址下载完整的数据集文件,并按照说明文档中的指导进行预处理操作以便后续训练过程顺利开展。确保将标注信息转换成适合输入到模型的形式,比如骨骼坐标点位置或者人体姿态估计结果。 #### 4. 构建ST-GCN模型 定义一个基于GraphConvLayer类别的自定义层用来表示单个图卷积单元;接着组合多个这样的模块形成整个网络架构。下面给出了一段简化版代码片段展示如何创建此类对象: ```python import tensorflow as tf from tensorflow.keras import layers, models class GraphConvLayer(layers.Layer): def __init__(self, units=8, activation='relu'): super(GraphConvLayer, self).__init__() self.units = units self.activation = tf.keras.activations.get(activation) def build(self, input_shape): w_init = tf.random_normal_initializer() self.w = tf.Variable( initial_value=w_init(shape=(input_shape[-1], self.units), dtype="float32"), trainable=True, ) def call(self, inputs, adjacency_matrix): aggregated_features = tf.matmul(adjacency_matrix, inputs) output = self.activation(tf.matmul(aggregated_features, self.w)) return output def create_st_gcn_model(input_shape, num_classes): model = models.Sequential([ # Add your graph convolution and other necessary layers here... layers.Flatten(), layers.Dense(num_classes, activation='softmax') ]) return model ``` #### 5. 训练评估模型性能 加载准备好的anno数据集之后就可以开始调整超参数配置并启动训练流程了。期间要注意监控损失函数变化趋势以及验证集上的表现情况以防止过拟合现象发生。最后利用测试集合评价最终版本的泛化能力。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值