Vitis AI 基本认知(CNN基本概念)

1. 目的

这篇文档介绍了一个名为CNN Explainer的交互式可视化系统,旨在帮助非专业人士学习卷积神经网络(CNN)。该系统通过直观的方式展示了CNN的工作原理,使用户能够更好地理解复杂的神经网络结构和运算过程。

CNN ExplainerAn interactive visualization system designed to help non-experts learn about Convolutional Neural Networks (CNNs).icon-default.png?t=N7T8https://poloclub.github.io/cnn-explainer/

2. 概念解释

2.1 并行度

PP, Pixel Parallel

ICP, Input Channel Parallel

OCP, Output Channel Parallel

虚线框内表示每周期同时执行的操作。

  • ICP:此CNN第一层有3个通道(RGB),如果DPU的ICP=3(支持3个并行数),意味着单周期内同时执行三个通道的乘法运算;如果ICP=8,那么第一层并没有完全利用DPU的并行算力。
  • OCP:此CNN的输出有三个kernel,意味着有三个输出通道;如果OCP=3,那么三个输出通道并行计算。
  • PP:每个pixcel都会一次或者多次参与卷积运算,DPU每次处理的pixel数量。
  • 卷积阵列都会执行一次乘法和一次累加,这计作 2 次运算。每个周期的峰值运算数量等于PP*ICP*OCP*2。

2.2 超参数

CNN ExplainerAn interactive visualization system designed to help non-experts learn about Convolutional Neural Networks (CNNs).icon-default.png?t=N7T8https://poloclub.github.io/cnn-explainer/

3. Tiny-VGG

filters = 10
tiny_vgg = Sequential([
    Conv2D(filters, (3, 3), input_shape=(64, 64, 3), name='conv_1_1'),
    Activation('relu', name='relu_1_1'),
    Conv2D(filters, (3, 3), name='conv_1_2'),
    Activation('relu', name='relu_1_2'),
    MaxPool2D((2, 2), name='max_pool_1'),

    Conv2D(filters, (3, 3), name='conv_2_1'),
    Activation('relu', name='relu_2_1'),
    Conv2D(filters, (3, 3), name='conv_2_2'),
    Activation('relu', name='relu_2_2'),
    MaxPool2D((2, 2), name='max_pool_2'),

    Flatten(name='flatten'),
    Dense(NUM_CLASS, activation='softmax', name='output')
])

对这个模型的逐层分析:

1. Conv2D(filters, (3, 3), input_shape=(64, 64, 3), name='conv_1_1'):

  • 第一层是一个卷积层,有10个过滤器(卷积核),每个核的大小是3x3。
  • input_shape=(64, 64, 3) 指定了输入图像的尺寸为64x64像素,且是彩色的(3个颜色通道:RGB)。

2. Activation('relu', name='relu_1_1'):

  • 这层使用ReLU(Rectified Linear Unit)激活函数。ReLU函数能帮助网络使用非线性变换,并且具有加速训练的效果。

3. Conv2D(filters, (3, 3), name='conv_1_2'):

  • 第三层又是一个卷积层,配置与第一层相同,也使用10个3x3的过滤器。

4. Activation('relu', name='relu_1_2'):

  • 同第二层,使用ReLU激活函数。

5. MaxPool2D((2, 2), name='max_pool_1'):

  • 最大池化层,使用2x2的池化窗口来降低特征图的空间维度(高和宽),这有助于减少计算量并且提取重要特征。

6. Conv2D(filters, (3, 3), name='conv_2_1'):

  • 第五层是又一个卷积层,参数与前面的卷积层相同。

7. Activation('relu', name='relu_2_1'):

  • 使用ReLU激活函数。

8. Conv2D(filters, (3, 3), name='conv_2_2'):

  • 第七层也是卷积层,与其他卷积层参数相同。

9. Activation('relu', name='relu_2_2'):

  • 使用ReLU激活函数。

10. MaxPool2D((2, 2), name='max_pool_2'):

  • 另一个最大池化层,使用2x2的池化窗口。

11. Flatten(name='flatten'):

  • 将多维的输出展平成一维,这样可以作为全连接层(Dense)的输入。

12. Dense(NUM_CLASS, activation='softmax', name='output'):

  • 全连接层,输出尺寸为NUM_CLASS,这应该是根据具体任务设定的类别数。
  • 使用softmax激活函数,这是多分类任务中常用的激活函数,用于输出每个类别的预测概率。

4. 总结

这篇文档介绍了一个名为CNN Explainer的交互式可视化系统,旨在帮助非专业人士学习卷积神经网络(CNN)。该系统通过直观的方式展示了CNN的工作原理,使用户能够更好地理解复杂的神经网络结构和运算过程。

文档首先解释了并行度的概念,包括像素并行(PP)、输入通道并行(ICP)和输出通道并行(OCP)。这些并行度参数决定了在每个周期内同时执行的操作数量。例如,ICP表示输入通道的并行度,如果DPU的ICP=3,意味着单周期内可以同时处理三个输入通道的运算。

接下来,文档详细分析了一个名为Tiny-VGG的CNN模型。该模型由多个卷积层、激活层、池化层和全连接层组成。每个卷积层使用3x3的过滤器,通过ReLU激活函数进行非线性变换。最大池化层用于降低特征图的空间维度,从而减少计算量并提取重要特征。最后,全连接层使用softmax激活函数输出每个类别的预测概率。

通过这种逐层分析,读者可以清晰地了解每一层的功能和作用,以及它们如何协同工作来完成图像分类任务。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vitis AI 3.0是Xilinx推出的一款人工智能开发平台。根据引用\[1\]和引用\[2\]的内容,你可以按照以下步骤来使用Vitis AI 3.0: 1. 首先,你需要克隆Vitis AI存储库并获取示例、参考代码和脚本。使用以下命令克隆存储库: ``` git clone https://github.com/Xilinx/Vitis-AI cd Vitis-AI ``` 2. 接下来,你需要启动Vitis AI的Docker容器。根据你之前安装的框架选择相应的命令。例如,如果你安装了pytorch-gpu版本,可以使用以下命令: ``` cd <Vitis-AI install path>/Vitis-AI ./docker_run.sh xilinx/vitis-ai-opt-pytorch-gpu:latest ``` 3. 在启动Docker容器后,你将看到类似于引用\[3\]中的输出。这表示你已经成功设置了Vitis AI的环境。你可以使用以下命令激活Vitis AI的pytorch环境: ``` conda activate vitis-ai-pytorch ``` 通过按照以上步骤,你可以开始使用Vitis AI 3.0进行人工智能开发。请注意,这只是一个简要的概述,具体的操作步骤可能会因为你的环境和需求而有所不同。建议你参考Xilinx官方文档和资料以获取更详细的指导和信息。 #### 引用[.reference_title] - *1* *2* [Xilinx Ubuntu环境下docker&Vitis AI 3.0基于GPU的环境安装](https://blog.csdn.net/lzq6261/article/details/129909204)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Vitis-AI 3.0 GPU Docker 安装踩坑及修改](https://blog.csdn.net/QHY0227/article/details/130750089)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值