ml-suite-1.5环境安装以及实验记录(vcu1525平台)
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层用于推理。
踩坑:
- 在运行这一步之前要先将
ml-suite/examples/caffe/run.py
拷贝到$HOME/share
路径下!!! - 注意,这里将原来的
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平台)相关推荐
- Manjaro Linux 17.0.2 KDE环境安装、配置记录
最近折腾Linux试来试去基本上选定了基于Arch Linux的Manjaro KDE环境来玩.在此记录一下目前版本的安装和配置,方便返工. 本次折腾的目标是 - 在win10系统下画出一部分硬盘安装 ...
- 测试环境安装配置obproxy(社区版)
测试环境安装obproxy,记录一下,已脱敏 [root@ensbrain data]# rpm -ivh obproxy-3.1.0-1.el7.x86_64.rpm 警告:obproxy-3.1. ...
- Masm for Winodws 集成实验环境安装绿色免费版
** Masm for Winodws 集成实验环境安装绿色免费版 ** 用于汇编的开发环境,绿色安全下载途径. 希望能帮到有需要的人,不喜勿喷. 提取文件后解压后,打开文件下载安装即可. 百度网盘下 ...
- 2022-2-16 MIT 6.828 实验环境安装
前期参考:MIT6.828 实验环境安装教程 但是中途遇到了一个问题: 参考这个解决 最终的成果
- 《深入理解计算机系统》Y86-64实验四Architecture Lab环境安装
前言 第四章提到的Y86-64和实验四Architecture Lab的环境安装. 先从官网下载文件: <深入理解计算机系统>官网:http://csapp.cs.cmu.edu/3e/l ...
- java实验环境,实验一(Java开发环境安装与配置
<实验一(Java开发环境安装与配置>由会员分享,可在线阅读,更多相关<实验一(Java开发环境安装与配置(6页珍藏版)>请在人人文库网上搜索. 1.实验报告实验报告序号:实验 ...
- 机器学习与深度学习入门环境安装
机器学习与深度学习入门环境安装 1.编程语言 2.开发平台 3.机器学习工具包 4.深度学习框架 1.编程语言 Python:"胶水语言",集成度高,简单实用,受众面广,开发者社区 ...
- bash: go: 未找到命令_【安全入门】centos7java/python/go语言环境安装
搞技术的肯定都得有几台虚拟机,同时也得弄几个vps,尤其是做网安的,复现个环境,最少用一个虚拟机.不管是开发还是做网络安全(脚本小子),linux机器是必备,一般选ubuntu或者centos 7,每 ...
- linux环境下qt实验报告,青岛科技大学实验报告(实验一).doc
班级: 姓名: 学号: 成绩: 实验一: Qt 开发环境的搭建 实验目的: 掌握Qt 开发环境的搭建方法 掌握Qt Creator 的基本使用方法 了解Qt Creator 的界面布局 了解Qt 相关 ...
最新文章
- 分布式文件系统KFS源码阅读与分析(四):RPC实现机制(KfsClient端)
- jenkins rec cve-2019-1003000 复现
- Requirejs定义模块
- Cordova 本地项目创建方法
- MySql远程连接设置
- SAP Control framework
- jquery如何获取checkbox的值
- 数组元素循环右移问题
- SDWebImage下载和缓存图片(UIImge)
- Python获取二维矩阵每列最大值
- 【java毕业设计】 基于java+SSH+JSP的保险业务管理系统设计与实现(毕业论文+程序源码)——保险业务管理系统
- Winrunner经验总结
- Docker搭建个人网盘和私人仓库,创建Dockerfile制作镜像
- java 读写文件乱码_Java 解决读写本地文件中文乱码的问题
- 符合OpenDRIVE规范的xodr文件格式解读(1) ——road部分
- 延时100ms c语言程序,C51单片机延时时间的计算方法解析
- 安装elevation_mapping与traversability_estimation
- Compose搭档 — Flow、Room
- 【算法】动画图解Dijkstra算法及其实现代码
- vue 2.0响应式源码实践,麻麻,我再也不怕被面试官提问啦