Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleHub
提交
98340723
P
PaddleHub
项目概览
PaddlePaddle
/
PaddleHub
大约 1 年 前同步成功
通知
282
Star
12117
Fork
2091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
200
列表
看板
标记
里程碑
合并请求
4
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleHub
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
200
Issue
200
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
98340723
编写于
3月 08, 2022
作者:
C
chenjian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix according to review
上级
ec2b31c9
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
10 addition
and
159 deletion
+10
-159
modules/image/classification/resnet50_vd_10w/README_en.md
modules/image/classification/resnet50_vd_10w/README_en.md
+10
-10
modules/image/classification/se_resnet18_vd_imagenet/README_en.md
...image/classification/se_resnet18_vd_imagenet/README_en.md
+0
-149
未找到文件。
modules/image/classification/resnet50_vd_10w/README_en.md
浏览文件 @
98340723
...
...
@@ -54,15 +54,15 @@
def context(trainable=True, pretrained=True)
```
-
**Parameters**
-
trainable (bool):
计算图的Parameters是否为可训练的
;
<br/>
-
pretrained (bool):
是否加载默认的预训练模型
.
-
trainable (bool):
whether parameters are trainable
;
<br/>
-
pretrained (bool):
whether load the pre-trained model
.
- **Return**
- inputs (dict):
计算图的输入,key 为 'image', value 为图片的张量
;<br/>
- outputs (dict):
计算图的输出,key 为 'classification' 和 'feature_map',其相应的值为
:
- classification (paddle.fluid.framework.Variable):
分类结果,也就是全连接层的输出
;
- feature\_map (paddle.fluid.framework.Variable):
特征匹配,全连接层前面的那个张量
.
- context\_prog(fluid.Program):
计算图,用于迁移学习
.
- inputs (dict):
model inputs,key is 'image', value is the image tensor
;<br/>
- outputs (dict):
model outputs,key is 'classification' and 'feature_map',values
:
- classification (paddle.fluid.framework.Variable):
classification result
;
- feature\_map (paddle.fluid.framework.Variable):
feature map extracted by model
.
- context\_prog(fluid.Program):
computation graph, used for transfer learning
.
...
...
@@ -73,9 +73,9 @@
combined=True)
```
-
**Parameters**
-
dirname: output dir for saving model
-
model_filename:
模型文件名称,默认为
\_\_
model
\_\_
;
<br/>
-
params_filename:
Parameters文件名称,默认为
\_\_
params
\_\_
(仅当
`combined`
为True时生效
);
<br/>
-
dirname: output dir for saving model
;
<br/>
-
model_filename:
filename of model, default is
\_\_
model
\_\_
;
<br/>
-
params_filename:
filename of parameters,default is
\_\_
params
\_\_
(only effective when
`combined`
is True
);
<br/>
-
combined: whether save parameters into one file
...
...
modules/image/classification/se_resnet18_vd_imagenet/README_en.md
已删除
100644 → 0
浏览文件 @
ec2b31c9
## 命令行预测
```
hub run se_resnet18_vd_imagenet --input_path "/PATH/TO/IMAGE"
```
## API
```
python
def
get_expected_image_width
()
```
返回预处理的图片宽度,也就是224。
```
python
def
get_expected_image_height
()
```
返回预处理的图片高度,也就是224。
```
python
def
get_pretrained_images_mean
()
```
返回预处理的图片均值,也就是
\[
0.485, 0.456, 0.406
\]
。
```
python
def
get_pretrained_images_std
()
```
返回预处理的图片标准差,也就是
\[
0.229, 0.224, 0.225
\]
。
```
python
def
context
(
trainable
=
True
,
pretrained
=
True
)
```
**参数**
*
trainable (bool): 计算图的参数是否为可训练的;
*
pretrained (bool): 是否加载默认的预训练模型。
**返回**
*
inputs (dict): 计算图的输入,key 为 'image', value 为图片的张量;
*
outputs (dict): 计算图的输出,key 为 'classification' 和 'feature_map',其相应的值为:
*
classification (paddle.fluid.framework.Variable): 分类结果,也就是全连接层的输出;
*
feature
\_
map (paddle.fluid.framework.Variable): 特征匹配,全连接层前面的那个张量。
*
context
\_
prog(fluid.Program): 计算图,用于迁移学习。
```
python
def
classification
(
images
=
None
,
paths
=
None
,
batch_size
=
1
,
use_gpu
=
False
,
top_k
=
1
):
```
**参数**
*
images (list
\[
numpy.ndarray
\]
): 图片数据,每一个图片数据的shape 均为
\[
H, W, C
\]
,颜色空间为 BGR;
*
paths (list
\[
str
\]
): 图片的路径;
*
batch
\_
size (int): batch 的大小;
*
use
\_
gpu (bool): 是否使用 GPU 来预测;
*
top
\_
k (int): 返回预测结果的前 k 个。
**返回**
res (list
\[
dict
\]
): 分类结果,列表的每一个元素均为字典,其中 key 为识别动物的类别,value为置信度。
```
python
def
save_inference_model
(
dirname
,
model_filename
=
None
,
params_filename
=
None
,
combined
=
True
)
```
将模型保存到指定路径。
**参数**
*
dirname: 存在模型的目录名称
*
model
\_
filename: 模型文件名称,默认为
\_\_
model
\_\_
*
params
\_
filename: 参数文件名称,默认为
\_\_
params
\_\_
(仅当
`combined`
为True时生效)
*
combined: 是否将参数保存到统一的一个文件中
## 预测代码示例
```
python
import
paddlehub
as
hub
import
cv2
classifier
=
hub
.
Module
(
name
=
"se_resnet18_vd_imagenet"
)
result
=
classifier
.
classification
(
images
=
[
cv2
.
imread
(
'/PATH/TO/IMAGE'
)])
# or
# result = classifier.classification(paths=['/PATH/TO/IMAGE'])
```
## Server Deployment
PaddleHub Serving可以部署一个在线图像识别服务。
## 第一步:启动PaddleHub Serving
运行启动命令:
```
shell
$
hub serving start
-m
se_resnet18_vd_imagenet
```
这样就完成了一个在线图像识别服务化API的部署,默认端口号为8866。
**NOTE:**
如使用GPU预测,则需要在启动服务之前,请设置CUDA
\_
VISIBLE
\_
DEVICES环境变量,否则不用设置。
## 第二步:发送预测请求
配置好服务端,以下数行代码即可实现发送预测请求,获取预测结果
```
python
import
requests
import
json
import
cv2
import
base64
def
cv2_to_base64
(
image
):
data
=
cv2
.
imencode
(
'.jpg'
,
image
)[
1
]
return
base64
.
b64encode
(
data
.
tostring
()).
decode
(
'utf8'
)
# Send an HTTP request
data
=
{
'images'
:[
cv2_to_base64
(
cv2
.
imread
(
"/PATH/TO/IMAGE"
))]}
headers
=
{
"Content-type"
:
"application/json"
}
url
=
"http://127.0.0.1:8866/predict/se_resnet18_vd_imagenet"
r
=
requests
.
post
(
url
=
url
,
headers
=
headers
,
data
=
json
.
dumps
(
data
))
# print prediction results
print
(
r
.
json
()[
"results"
])
```
### 查看代码
https://github.com/PaddlePaddle/PaddleClas
### 依赖
paddlepaddle >= 1.6.2
paddlehub >= 1.6.0
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录