MyFirstPage
第一课 深度学习推理框架基础
什么是推理框架
深度学习推理框架用于==完成训练阶段的神经网络模型文件==进行加载,并根据模型文件中网络结构与权重参数对输入图像(数据)进行预测。
环境准备
Windows 下的环境准备
- 拉取Docker镜像:
1 | docker pull registry.cn-hangzhou.aliyuncs.com/hellofss/kuiperinfer:datawhale |
- 创建本地文件夹,并将课程代码克隆到该文件夹中。
1 | git clone https://github.com/zjhellofss/kuiperdatawhale.git |
- 创建并运行一个镜像的容器。
1 | docker run -it -p 7860:22 registry.cn-hangzhou.aliyuncs.com/hellofss/kuiperinfer:datawhale /bin/bash |
- 尝试使用ssh命令连接容器,这里的用户名固定是
me, 登录密码是1.
1 | ssh -p 7860 me@127.0.0.1 |
Linux下环境准备
拉取
docker镜像:1
sudo docker pull registry.cn-hangzhou.aliyuncs.com/hellofss/kuiperinfer:datawhale
创建本地文件夹,并克隆课程代码
1
2
3mkdir -p ~/code/kuiperdatawhale
cd ~/code/kuiperdatawhale
git clone https://github.com/zjhellofss/kuiperdatawhale.git创建一个镜像的容器并运行。
1
2sudo docker run -it registry.cn-hangzhou.aliyuncs.com/hellofss/kuiperinfer:datawhale
/bin/bash在容器中输入
ifconfig查看ip地址。尝试使用ssh命令连接容器,这里的用户名固定是me,ip地址为4中
ifconfig输出的inet,登录密码设置为11
ssh me@inet
关于KuiperInfer的技术全景概述
KuiperInfer可以分为以下几个部分:
Operator:深度学习计算图中的计算节点。包括以下几个部分:- 存储输入与输出张量。
- 计算节点的类型与名称
- 参数信息(卷积核的步长,大小)
- 权重信息(weight,bias)
Graph:多个Operator串联成的有向无环图,规定各个Operato的执行流程与顺序。Layer:Operator中运行的具体执行者。Tensor:用于存储==多维数据==的数据结构,方便数据在计算节点之间传递,同时该结构也封装矩阵乘、点积等与矩阵相关的基本操作。

使用VScode连接容器
在 VSCode 中,连接容器是一件很简单的事情,首先你需要安装 Docker 插件,点击左侧的扩展栏(或是ctrl+shift+X),键入 Docker,随后选择安装:

安装后,你将会看到左侧出现一个相同长相的小鲸鱼,左键点击它你将会看到我们启动的所有容器:

在成功进入容器之前,我们还需要再安装几个小插件,我们接着搜索 Dev container 以及 Remote Development 插件,都安装第一个即可。
- 接下来,你需要右键之前启动的容器
registry.cn-hangzhou.aliyuncs.com/hellofss/kuiperinfer:datawhale,选择 附加 Visual Studio Code 进入 Docker 环境,若你没有看到这个选项,请再次确保前面的三个插件已经都完全安装。
在进入 Docker 环境后,我们还需要手动再次 clone 课程代码,你可以执行ctrl + J调出控制台终端,在终端中输入:
1 | cd /home |
然后在左上角选择文件 —— 打开文件夹 —— /home/kuiperdatawhale —— 确定即可进入课程主界面。
- 进入 Docker 环境后的 VSCode 拥有独立的插件环境,所以我们需要重新安装有关插件:
你需要在此时的主界面找到扩展,且根据安装 Docker 插件的步骤自行搜索完成以下几款插件的安装:
CMake 相关插件的安装(共三种)

使用VScode连接容器
在 VSCode 中,连接容器是一件很简单的事情,首先你需要安装 Docker 插件,点击左侧的扩展栏(或是ctrl+shift+X),键入 Docker,随后选择安装:

安装后,你将会看到左侧出现一个相同长相的小鲸鱼,左键点击它你将会看到我们启动的所有容器:

在成功进入容器之前,我们还需要再安装几个小插件,我们接着搜索 Dev container 以及 Remote Development 插件,都安装第一个即可。
- 接下来,你需要右键之前启动的容器
registry.cn-hangzhou.aliyuncs.com/hellofss/kuiperinfer:datawhale,选择 附加 Visual Studio Code 进入 Docker 环境,若你没有看到这个选项,请再次确保前面的三个插件已经都完全安装。
在进入 Docker 环境后,我们还需要手动再次 clone 课程代码,你可以执行ctrl + J调出控制台终端,在终端中输入:
1 | cd /home |
然后在左上角选择文件 —— 打开文件夹 —— /home/kuiperdatawhale —— 确定即可进入课程主界面。
- 进入 Docker 环境后的 VSCode 拥有独立的插件环境,所以我们需要重新安装有关插件:
你需要在此时的主界面找到扩展,且根据安装 Docker 插件的步骤自行搜索完成以下几款插件的安装:
CMake 相关插件的安装(共三种)

C++ 相关插件的安装(共一种)

- 在安装成功后,我们就可以开始编译调试了,你将会在下方看到如下界面:

首先,你需要点击工具图表,选择 GCC 9.4.0 x86_64-linux-gnu 版本的编译工具,确保编译工具一致。
接下来让我们尝试编译运行主程序,只需要在 ▶ 键右侧选择对应的编译目标(比如图中我选择了 kuiper_datawhale_course1),再点击▶ 按钮 即可开始编译运行。

如果配置成功,程序会出现如下的运行结果,出现Failed这是因为本节课作业需要完成一定的代码,若作业都正确完成,Failed标签就会在运行结果中消失。
1 | [==========] Running 7 tests from 1 test suite. |
除了编译程序,调试程序也是很重要的一环,在这里你可以试试看点击 ▶ 键旁边的小虫子键,然后观察会发生什么现象,也可以自己尝试打断点看看程序的执行流是否会停留在预期位置,甚至在调试控制台输入变量看看会出现什么结果,这里的探索就交给你。另外,如果你想了解更多有关 VSCode 的使用方法以及调试说明,请参考资料。
](https://pic4.zhimg.com/v2-5cf9a46adc0f7bf34020db00d0d9bd03_1440w.jpg)
C++ 相关插件的安装(共一种)

- 在安装成功后,我们就可以开始编译调试了,你将会在下方看到如下界面:

首先,你需要点击工具图表,选择 GCC 9.4.0 x86_64-linux-gnu 版本的编译工具,确保编译工具一致。
接下来让我们尝试编译运行主程序,只需要在 ▶ 键右侧选择对应的编译目标(比如图中我选择了 kuiper_datawhale_course1),再点击▶ 按钮 即可开始编译运行。

如果配置成功,程序会出现如下的运行结果,出现Failed这是因为本节课作业需要完成一定的代码,若作业都正确完成,Failed标签就会在运行结果中消失。
1 | [==========] Running 7 tests from 1 test suite. |
除了编译程序,调试程序也是很重要的一环,在这里你可以试试看点击 ▶ 键旁边的小虫子键,然后观察会发生什么现象,也可以自己尝试打断点看看程序的执行流是否会停留在预期位置,甚至在调试控制台输入变量看看会出现什么结果,这里的探索就交给你。另外,如果你想了解更多有关 VSCode 的使用方法以及调试说明,请参考资料。