ml-suite-1.5环境安装记录


硬件平台:vcu1525

1. 下载并安装xrt和shell firmware

(1)安装xrt

wget https://www.xilinx.com/bin/public/openDownload?filename=xrt_201802.2.1.127_16.04-xrt.deb && sudo apt install ./*.deb

(2)安装shell firmware

download

(3) 运行

sudo bash ./xrt-install.sh

2. 安装docker

2.1 下载安装包

download

目前下载的能用的版本是:

docker-ce_19.03.15_3-0_ubuntu-xenial_amd64.deb

2.2 安装

sudo dpkg -i docker-ce_19.03.15_3-0_ubuntu-xenial_amd64.deb

2.3 下载ml-suite环境镜像

download

2.4 加载镜像

sudo chmod 666 /var/run/docker.sock
docker load < xilinx-ml-suite-ubuntu-16.04-xrt-2018.2-tensorflow-1.12.0-mls-1.5.tar.gz

2.4 测试是否安装成功

docker run hello-world

2.5 激活ml-suite环境

输入下面的命令查看容器的ID:

docker images

显示如下:

REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
ubuntu        latest    26b77e58432b   9 days ago      72.9MB
hello-world   latest    d1165f221234   5 weeks ago     13.3kB
<none>        <none>    5764b4f11309   20 months ago   4.13GB

这里的<none>就是我们上面加载的ml-suite环境容器。

然后输入下面的命令进入容器镜像并激活ml-suite环境:

./docker_run.sh 5764b4f11309

激活成功:

3. 运行测试用例

参考Jupyter Notebooks README.

3.1 获取模型

cd examples/tensorflow
python getModels.py

3.2 获取测试数据

首先运行docker images或者docker ps,确定容器的 ID.

./docker_run.sh 5764b4f11309 #激活环境,后面为容器的ID
cd examples/tensorflow
python -m ck pull repo:ck-env
python -m ck install package:imagenet-2012-val-min
python -m ck install package:imagenet-2012-aux
head -n 500 $HOME/CK-TOOLS/dataset-imagenet-ilsvrc2012-aux/val.txt > \
$HOME/CK-TOOLS/dataset-imagenet-ilsvrc2012-val-min/val_map.txt
# Resize all the images to a common dimension for Caffe
python resize.py $HOME/CK-TOOLS/dataset-imagenet-ilsvrc2012-val-min 256 256

注意一:

这里第三行报错,原因:一般是没有初始化git本地版本管理仓库,所以无法执行git命令

解决方法:操作之前执行以下命令行: git init

将第三行替换为:

cd /home/mluser/CK/ck-env
git init
git pull https://github.com/ctuning/ck-env master

git pull 是将远程origin的master分支拉取过来,与本地当前分支合并,参考这里。

注意二:

第四行速度太慢

解决方法:在windows电脑上下载,下载地址.

下载完成后放到容器的路径:/home/mluser/CK-TOOLS/dataset-imagenet-ilsvrc2012-val-min/ILSVRC2012_img_val.tar 下。

然后解压:

cd /home/mluser/CK-TOOLS/dataset-imagenet-ilsvrc2012-val-min
tar -xf ILSVRC2012_img_val.tar

第五行和第四行处理方法相同,下载地址.

下载完成后放到容器的路径:/home/mluser/CK-TOOLS/dataset-imagenet-ilsvrc2012-aux/caffe_ilsvrc12.tar.gz.

解压:

cd /home/mluser/CK-TOOLS/dataset-imagenet-ilsvrc2012-aux/
tar -zxvf caffe_ilsvrc12.tar.gz

3.3 Launch Jupyter notebook server

cd /opt/ml-suite/notebooks
jupyter notebook --no-browser --ip=0.0.0.0 --NotebookApp.token='' --NotebookApp.password=''

3.4 Open a broswer, and navigate to :

  • 127.0.0.1:8888

4. docker从宿主机拷贝到容器或相反操作

4.1 查看容器名字

docker ps

4.2 从宿主机拷贝文件到容器

docker cp 要拷贝的文件路径 容器名:要拷贝到容器里的对应路径

示例:

docker cp /opt/test.js mycontainer:/usr/local/tomcat/test/js

注意,这里的冒号前后没有空格!

4.3 从容器拷贝文件到宿主机

docker cp 容器名:要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径

5. container_pipeline go through 过程

container_pipeline.md.

5.1 创建一个共享目录来映射容器,以便在不同阶段之间共享中间结果

mkdir $HOME/share
sudo chmod -R 777 $HOME/share

5.2 Clone ML Suite

cd $HOME/share
git clone https://github.com/Xilinx/ml-suite.git

原教程中没有cd $HOME/share,但放到该路径下,到时候加载容器时,可以挂载到容器实现共享。

5.3 使用Collective Knowledge(CK)下载Imagenet2012_val_min.

5.3.1 安装CK
pip install ck

这里如果出错,可能是代理的原因,解决方法:

unset all_proxy && unset ALL_PROXY
5.3.2 测试ck是否安装成功
$ python
> import ck.kernel as ck
> ck.version({})
5.3.3 使用ck进行数据集下载
python -m ck pull repo:ck-env
python -m ck install package:imagenet-2012-val-min
python -m ck install package:imagenet-2012-aux
head -n 500 $HOME/CK-TOOLS/dataset-imagenet-ilsvrc2012-aux/val.txt > $HOME/CK-TOOLS/dataset-imagenet-ilsvrc2012-val-min/val_map.txt

将所有图片都Resize到Caffe需要的大小-256

python -m pip --no-cache-dir install opencv-python --user
python MLsuite/examples/caffe/resize.py $HOME/CK-TOOLS/dataset-imagenet-ilsvrc2012-val-min 256 256

Move $HOME/CK-TOOLS to $HOME/share/CK-TOOLS

mv $HOME/CK-TOOLS $HOME/share/CK-TOOLS

从xilinx下载示例模型。

mkdir $HOME/share/models
mkdir $HOME/share/models/caffe

更改MLsuite/examples/caffe/getModels.py中的modelsDir = "/opt/models/caffe/"$HOME/share/models/caffe.

运行getModel.py将模型下载到路径$HOME/share/models/caffe下。

5.3 下载MLsuite docker container并加载
  • ML Suite TensorFlow Container
  • ML Suite Caffe Container
# May need sudo
$ docker load < xilinx-ml-suite-ubuntu-16.04-xrt-2018.2-tensorflow-1.12.0-mls-1.5.tar.gz
$ docker load < xilinx-ml-suite-ubuntu-16.04-xrt-2018.2-caffe-1.0-mls-1.5.tar.gz

注意包含“<”符号。

在接下来的几个步骤中,我们将启动容器的单个实例,以运行量化器、编译器、子图切割器和图像分类的推理步骤。这将允许我们水平和垂直地缩放相关步骤。

在调用docker时,确保将$HOME/share$HOME/share/CK-TOOLS目录挂载到容器的适当位置,如下面的各个步骤所示。

5.4 Prepare for inference

它在一个步骤中执行量化、编译和子图切割。

  • 量化模型--量化器将为量化浮点数INT8产生缩放参数。这是必需的,因为fpga将利用定点精度,实现更多的并行化在较低功率。

  • 编译模型--在这个步骤中,网络图(prototxt)和重量(caffemodel)由编译器编译。

  • 子图切割--在这一步中,原始的图被切割,并插入一个定制的FPGA加速python层用于推理。

踩坑:

  1. 在运行这一步之前要先将ml-suite/examples/caffe/run.py拷贝到$HOME/share路径下!!!
  2. 注意,这里将原来的xilinxatg/ml_suite:ubuntu-16.04-caffe-mls-1.4替换为6909f7cd79d6 .
docker run --rm --net=host --privileged=true -a stdin -a stdout -a stderr -t -v /dev:/dev -v /opt/xilinx:/opt/xilinx -w /opt/ml-suite -v $HOME/share:/opt/share -v $HOME/share/CK-TOOLS:/home/mluser/CK-TOOLS -v $HOME/share/models/caffe/bvlc_googlenet:/opt/models/caffe/bvlc_googlenet 6909f7cd79d6  bash -c 'source /opt/ml-suite/overlaybins/setup.sh && cd /opt/share/ && python run.py --prototxt /opt/models/caffe/bvlc_googlenet/bvlc_googlenet_train_val.prototxt --caffemodel /opt/models/caffe/bvlc_googlenet/bvlc_googlenet.caffemodel --prepare'

5.8 Inference REST API Server for Classification, 启动服务器

在这个步骤中,启动一个python flask inference服务器,它接收前面步骤中的caffe模型和原型文件,在FPGA上运行,并公开一个REST API端点来对输入图像执行推断.

这里同样将原来的xilinxatg/ml_suite:ubuntu-16.04-caffe-mls-1.4替换为6909f7cd79d6 .

docker run --rm --net=host --privileged=true -d -v /dev:/dev -v /opt/xilinx:/opt/xilinx -w /opt/ml-suite -v $HOME/share:/opt/share -v $HOME/CK-TOOLS:/home/mluser/CK-TOOLS -v $HOME/share/models/caffe/bvlc_googlenet:/opt/models/caffe/bvlc_googlenet 6909f7cd79d6 bash -c 'source /opt/ml-suite/overlaybins/setup.sh && cd /opt/share/ && python /opt/ml-suite/examples/caffe/app.py --caffemodel /opt/models/caffe/bvlc_googlenet/bvlc_googlenet.caffemodel --prototxt xfdnn_auto_cut_deploy.prototxt --synset_words /home/mluser/CK-TOOLS/dataset-imagenet-ilsvrc2012-aux/synset_words.txt --port 5000'

最后跑通的命令

将上面的整体分两步实现:

第一步:

!!!这里修改$HOME/CK-TOOLS:/home/mluser/CK-TOOLS -> $HOME/share/CK-TOOLS:/home/mluser/CK-TOOLS

docker run --rm --net=host --privileged=true  -v /dev:/dev -v /opt/xilinx:/opt/xilinx -w /opt/ml-suite -v $HOME/share:/opt/share -v $HOME/share/CK-TOOLS:/home/mluser/CK-TOOLS -v $HOME/share/models/caffe/bvlc_googlenet:/opt/models/caffe/bvlc_googlenet -it -t 6909f7cd79d6

第二步:

!!!这里修改/opt/ml-suite/examples/caffe/REST/app.py中的import xdnn_io -> from xfdnn.rt import xdnn_io.

bash -c 'source /opt/ml-suite/overlaybins/setup.sh && cd /opt/share/ && python /opt/ml-suite/examples/caffe/REST/app.py --caffemodel /opt/models/caffe/bvlc_googlenet/bvlc_googlenet.caffemodel --prototxt /opt/share/work/xfdnn_auto_cut_deploy.prototxt --synset_words /home/mluser/CK-TOOLS/dataset-imagenet-ilsvrc2012-aux/synset_words.txt --port 5000'

5.9 Classification (Passing an Image for Inference)

另开一个终端:

curl -X POST -F image=@$HOME/share/CK-TOOLS/dataset-imagenet-ilsvrc2012-val-min/ILSVRC2012_val_00000001.JPEG 'http://localhost:5000/predict'

ml-suite-1.5环境安装以及实验记录(vcu1525平台)相关推荐

  1. Manjaro Linux 17.0.2 KDE环境安装、配置记录

    最近折腾Linux试来试去基本上选定了基于Arch Linux的Manjaro KDE环境来玩.在此记录一下目前版本的安装和配置,方便返工. 本次折腾的目标是 - 在win10系统下画出一部分硬盘安装 ...

  2. 测试环境安装配置obproxy(社区版)

    测试环境安装obproxy,记录一下,已脱敏 [root@ensbrain data]# rpm -ivh obproxy-3.1.0-1.el7.x86_64.rpm 警告:obproxy-3.1. ...

  3. Masm for Winodws 集成实验环境安装绿色免费版

    ** Masm for Winodws 集成实验环境安装绿色免费版 ** 用于汇编的开发环境,绿色安全下载途径. 希望能帮到有需要的人,不喜勿喷. 提取文件后解压后,打开文件下载安装即可. 百度网盘下 ...

  4. 2022-2-16 MIT 6.828 实验环境安装

    前期参考:MIT6.828 实验环境安装教程 但是中途遇到了一个问题: 参考这个解决 最终的成果

  5. 《深入理解计算机系统》Y86-64实验四Architecture Lab环境安装

    前言 第四章提到的Y86-64和实验四Architecture Lab的环境安装. 先从官网下载文件: <深入理解计算机系统>官网:http://csapp.cs.cmu.edu/3e/l ...

  6. java实验环境,实验一(Java开发环境安装与配置

    <实验一(Java开发环境安装与配置>由会员分享,可在线阅读,更多相关<实验一(Java开发环境安装与配置(6页珍藏版)>请在人人文库网上搜索. 1.实验报告实验报告序号:实验 ...

  7. 机器学习与深度学习入门环境安装

    机器学习与深度学习入门环境安装 1.编程语言 2.开发平台 3.机器学习工具包 4.深度学习框架 1.编程语言 Python:"胶水语言",集成度高,简单实用,受众面广,开发者社区 ...

  8. bash: go: 未找到命令_【安全入门】centos7java/python/go语言环境安装

    搞技术的肯定都得有几台虚拟机,同时也得弄几个vps,尤其是做网安的,复现个环境,最少用一个虚拟机.不管是开发还是做网络安全(脚本小子),linux机器是必备,一般选ubuntu或者centos 7,每 ...

  9. linux环境下qt实验报告,青岛科技大学实验报告(实验一).doc

    班级: 姓名: 学号: 成绩: 实验一: Qt 开发环境的搭建 实验目的: 掌握Qt 开发环境的搭建方法 掌握Qt Creator 的基本使用方法 了解Qt Creator 的界面布局 了解Qt 相关 ...

最新文章

  1. 分布式文件系统KFS源码阅读与分析(四):RPC实现机制(KfsClient端)
  2. jenkins rec cve-2019-1003000 复现
  3. Requirejs定义模块
  4. Cordova 本地项目创建方法
  5. MySql远程连接设置
  6. SAP Control framework
  7. jquery如何获取checkbox的值
  8. 数组元素循环右移问题
  9. SDWebImage下载和缓存图片(UIImge)
  10. Python获取二维矩阵每列最大值
  11. 【java毕业设计】 基于java+SSH+JSP的保险业务管理系统设计与实现(毕业论文+程序源码)——保险业务管理系统
  12. Winrunner经验总结
  13. Docker搭建个人网盘和私人仓库,创建Dockerfile制作镜像
  14. java 读写文件乱码_Java 解决读写本地文件中文乱码的问题
  15. 符合OpenDRIVE规范的xodr文件格式解读(1) ——road部分
  16. 延时100ms c语言程序,C51单片机延时时间的计算方法解析
  17. 安装elevation_mapping与traversability_estimation
  18. Compose搭档 — Flow、Room
  19. 【算法】动画图解Dijkstra算法及其实现代码
  20. vue 2.0响应式源码实践,麻麻,我再也不怕被面试官提问啦

热门文章

  1. 市政下水道疏通机器人_市政下水道疏通机器人机械CAD图纸设计.doc
  2. 光谱特征选择---非信息变量剔除UVE
  3. 短信就能买火车票?我们试了试5G消息开发,顺手搞了次红包问答
  4. 中国农业卫星数据服务十四五规划及未来发展展望报告2022-2028年
  5. HTML中如何调整标签在页面中显示的位置
  6. 2020笔记本电脑选购分析(redmibook 16锐龙版和惠普星14s 满配)
  7. 羊皮卷之一:今天,我开始新的生活
  8. 【长虹电视刷机降级】可装第三方软件
  9. 深入理解React Hooks
  10. Triloga 的任务 — Satta 系列来袭!