Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
Paddle-Lite
提交
a480952a
P
Paddle-Lite
项目概览
PaddlePaddle
/
Paddle-Lite
通知
331
Star
4
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
271
列表
看板
标记
里程碑
合并请求
78
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle-Lite
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
271
Issue
271
列表
看板
标记
里程碑
合并请求
78
合并请求
78
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
a480952a
编写于
11月 01, 2019
作者:
Z
Zhaolong Xing
提交者:
GitHub
11月 01, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add cuda doc (#2286)
test=develop
上级
502fc949
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
114 addition
and
0 deletion
+114
-0
_all_pages/develop/cuda.md
_all_pages/develop/cuda.md
+113
-0
_all_pages/develop/index.md
_all_pages/develop/index.md
+1
-0
未找到文件。
_all_pages/develop/cuda.md
0 → 100644
浏览文件 @
a480952a
---
layout
:
post
title
:
Lite基于CUDA的模型预测
---
Lite支持在x86_64,arm64架构上(如:TX2)进行CUDA的编译运行。
## 编译
**NOTE:**
如果是在TX2等NVIDIA嵌入式硬件上编译,请使用最新的
[
Jetpack
](
https://developer.nvidia.com/embedded/jetpack
)
安装依赖库。
一: 下载代码
```
git clone https://github.com/PaddlePaddle/Paddle-Lite.git
```
二:编译
```
# 进入代码目录
cd Paddle-Lite
# 运行编译脚本
# 编译结束会在本目录下生成 build_cuda 目录
# 编译过程中如果提示找不到CUDA,CUDNN,请在环境变量设置CUDA_TOOLKIT_ROOT_DIR, CUDNN_ROOT
# CUDA_TOOLKIT_ROOT_DIR,CUDNN_ROOT分别表示CUDA,CUDNN的根目录
./lite/tools/build.sh cuda
```
编译结束会在
`build_cuda/inference_lite_lib/python/lib/`
目录下生成
`lite_core.so`
。
## 运行
以下以Yolov3模型为例,介绍如何在Nvidia GPU硬件上运行模型。
一: 下载darknet_yolov3模型,模型信息请参考
[
这里
](
https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/yolov3
)
```
# 下载模型
wget https://paddle-inference-dist.cdn.bcebos.com/PaddleLite/yolov3_infer.tar.gz
# 下载图片样例
wget https://paddle-inference-dist.cdn.bcebos.com/PaddleLite/kite.jpg
```
二: 运行
**NOTE:**
此处示例使用的是python接口,后续会开放C++接口以及示例。
```
python
#-*- coding: utf-8 -*-
from
__future__
import
print_function
import
sys
import
numpy
as
np
import
cv2
sys
.
path
.
append
(
'build_cuda/inference_lite_lib/python/lib'
)
from
lite_core
import
*
def
read_img
(
im_path
,
resize_h
,
resize_w
):
im
=
cv2
.
imread
(
im_path
).
astype
(
'float32'
)
im
=
cv2
.
cvtColor
(
im
,
cv2
.
COLOR_BGR2RGB
)
h
,
w
,
_
=
im
.
shape
im_scale_x
=
resize_h
/
float
(
w
)
im_scale_y
=
resize_w
/
float
(
h
)
out_img
=
cv2
.
resize
(
im
,
None
,
None
,
fx
=
im_scale_x
,
fy
=
im_scale_y
,
interpolation
=
cv2
.
INTER_CUBIC
)
mean
=
np
.
array
([
0.485
,
0.456
,
0.406
]).
reshape
((
1
,
1
,
-
1
))
std
=
np
.
array
([
0.229
,
0.224
,
0.225
]).
reshape
((
1
,
1
,
-
1
))
out_img
=
(
out_img
/
255.0
-
mean
)
/
std
out_img
=
out_img
.
transpose
((
2
,
0
,
1
))
return
out_img
# 配置config
a
=
CxxConfig
()
a
.
set_model_file
(
'./yolov3_infer/__model__'
)
# 指定模型文件路径
a
.
set_param_file
(
'./yolov3_infer/__params__'
)
# 指定参数文件路径
place_cuda
=
Place
(
TargetType
.
CUDA
)
a
.
set_valid_places
([
place_cuda
])
# 创建predictor
predictor
=
create_paddle_predictor
(
a
)
# 设置输入
input_tensor
=
predictor
.
get_input
(
0
);
height
,
width
=
608
,
608
input_tensor
.
resize
([
1
,
3
,
height
,
width
])
data
=
read_img
(
'./kite.jpg'
,
height
,
width
).
flatten
()
input_tensor
.
set_float_data
(
data
,
TargetType
.
CUDA
)
in2
=
predictor
.
get_input
(
1
);
in2
.
resize
([
1
,
2
])
in2
.
set_int32_data
([
height
,
width
],
TargetType
.
CUDA
)
# 运行
predictor
.
run
()
# 获取输出
output_tensor
=
predictor
.
get_output
(
0
);
print
(
output_tensor
.
shape
())
# [100L, 6L]
print
(
output_tensor
.
target
())
# TargetType.Host
print
(
output_tensor
.
float_data
()[:
6
])
# [0.0, 0.9862784743309021, 98.51927185058594, 471.2381286621094, 120.73092651367188, 578.33251953125]
```
**NOTE:**
对CUDA的支持还在持续开发中。
\ No newline at end of file
_all_pages/develop/index.md
浏览文件 @
a480952a
...
...
@@ -44,6 +44,7 @@ Paddle-Lite 框架是 PaddleMobile 新一代架构,重点支持移动端推理
-
[
使用华为NPU
](
{{site.baseurl}}/develop/npu
)
-
[
使用Android GPU
](
{{site.baseurl}}/develop/opencl
)
-
[
使用FPGA
](
{{site.baseurl}}/develop/fpga
)
-
[
使用CUDA
](
{{site.baseurl}}/develop/cuda
)
## 开发者文档
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录