Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleHub
提交
7098f925
P
PaddleHub
项目概览
PaddlePaddle
/
PaddleHub
大约 2 年 前同步成功
通知
285
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看板
提交
7098f925
编写于
11月 04, 2020
作者:
W
wuzewu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix ci issue
上级
315a3084
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
58 addition
and
51 deletion
+58
-51
docs/tutorial/how_to_load_data.md
docs/tutorial/how_to_load_data.md
+9
-10
hub_module/modules/text/text_generation/reading_pictures_writing_poems/__init__.py
...ext_generation/reading_pictures_writing_poems/__init__.py
+0
-1
hub_module/modules/text/text_generation/reading_pictures_writing_poems/module.py
.../text_generation/reading_pictures_writing_poems/module.py
+20
-15
hub_module/modules/text/text_generation/reading_pictures_writing_poems_for_midautumn/MidAutumnDetection/__init__.py
...riting_poems_for_midautumn/MidAutumnDetection/__init__.py
+0
-1
hub_module/modules/text/text_generation/reading_pictures_writing_poems_for_midautumn/MidAutumnDetection/module.py
..._writing_poems_for_midautumn/MidAutumnDetection/module.py
+1
-3
hub_module/modules/text/text_generation/reading_pictures_writing_poems_for_midautumn/MidAutumnPoetry/__init__.py
...s_writing_poems_for_midautumn/MidAutumnPoetry/__init__.py
+0
-1
hub_module/modules/text/text_generation/reading_pictures_writing_poems_for_midautumn/MidAutumnPoetry/module.py
...res_writing_poems_for_midautumn/MidAutumnPoetry/module.py
+0
-1
hub_module/modules/text/text_generation/reading_pictures_writing_poems_for_midautumn/__init__.py
.../reading_pictures_writing_poems_for_midautumn/__init__.py
+0
-1
hub_module/modules/text/text_generation/reading_pictures_writing_poems_for_midautumn/module.py
...on/reading_pictures_writing_poems_for_midautumn/module.py
+25
-14
hub_module/tests/unittests/test_reading_pictures_writing_poems.py
...le/tests/unittests/test_reading_pictures_writing_poems.py
+3
-4
未找到文件。
docs/tutorial/how_to_load_data.md
浏览文件 @
7098f925
...
@@ -70,15 +70,14 @@ cat
...
@@ -70,15 +70,14 @@ cat
dog
dog
```
```
### 自定义数据加载
### 自定义数据加载
加载图像类自定义数据集,用户仅需要继承基类BaseCVDatast,修改数据集存放地址即可。具体使用如下:
加载图像类自定义数据集,用户仅需要继承基类BaseCVDatast,修改数据集存放地址即可。具体使用如下:
**NOTE:**
*
数据集文件编码格式建议为utf8格式。
*
dataset_dir为数据集实际路径,需要填写全路径,以下示例以
`/test/data`
为例。
*
训练/验证/测试集的数据列表文件中的图片路径需要相对于dataset_dir的相对路径,例如图片的实际位置为
`/test/data/dog/dog1.jpg`
。base_path为
`/test/data`
,则文件中填写的路径应该为
`dog/dog1.jpg`
。
*
如果您还有预测数据(没有文本类别),可以将预测数据存放在predict_list.txt文件,文件格式和train_list.txt类似。去掉label一列即可
*
如果您的数据集类别较少,可以不用定义label_list.txt,可以选择定义label_list=["数据集所有类别"]。
*
分类任务中,数据集的label必须从0开始计数
**NOTE:**
*
数据集文件编码格式建议为utf8格式。
*
dataset_dir为数据集实际路径,需要填写全路径,以下示例以
`/test/data`
为例。
*
训练/验证/测试集的数据列表文件中的图片路径需要相对于dataset_dir的相对路径,例如图片的实际位置为
`/test/data/dog/dog1.jpg`
。base_path为
`/test/data`
,则文件中填写的路径应该为
`dog/dog1.jpg`
。
*
如果您还有预测数据(没有文本类别),可以将预测数据存放在predict_list.txt文件,文件格式和train_list.txt类似。去掉label一列即可
*
如果您的数据集类别较少,可以不用定义label_list.txt,可以选择定义label_list=["数据集所有类别"]。
*
分类任务中,数据集的label必须从0开始计数
hub_module/modules/text/text_generation/reading_pictures_writing_poems/__init__.py
浏览文件 @
7098f925
hub_module/modules/text/text_generation/reading_pictures_writing_poems/module.py
浏览文件 @
7098f925
...
@@ -12,6 +12,7 @@ import paddle.fluid as fluid
...
@@ -12,6 +12,7 @@ import paddle.fluid as fluid
import
paddlehub
as
hub
import
paddlehub
as
hub
from
translate
import
Translator
from
translate
import
Translator
@
moduleinfo
(
@
moduleinfo
(
name
=
"reading_pictures_writing_poems"
,
name
=
"reading_pictures_writing_poems"
,
version
=
"1.0.0"
,
version
=
"1.0.0"
,
...
@@ -26,9 +27,9 @@ class ReadingPicturesWritingPoems(hub.Module):
...
@@ -26,9 +27,9 @@ class ReadingPicturesWritingPoems(hub.Module):
"""
"""
self
.
pretrained_model_path
=
os
.
path
.
join
(
self
.
directory
,
"assets"
,
self
.
pretrained_model_path
=
os
.
path
.
join
(
self
.
directory
,
"assets"
,
"infer_model"
)
"infer_model"
)
self
.
module_image
=
hub
.
Module
(
name
=
"xception71_imagenet"
)
# 调用图像分类的模型
self
.
module_image
=
hub
.
Module
(
name
=
"xception71_imagenet"
)
# 调用图像分类的模型
self
.
module_similar
=
hub
.
Module
(
name
=
"ernie_gen_couplet"
)
# 调用对联生成的模型
self
.
module_similar
=
hub
.
Module
(
name
=
"ernie_gen_couplet"
)
# 调用对联生成的模型
self
.
module_poem
=
hub
.
Module
(
name
=
"ernie_gen_poetry"
)
# 调用古诗生成的模型
self
.
module_poem
=
hub
.
Module
(
name
=
"ernie_gen_poetry"
)
# 调用古诗生成的模型
def
is_chinese
(
self
,
string
):
def
is_chinese
(
self
,
string
):
"""
"""
...
@@ -38,10 +39,10 @@ class ReadingPicturesWritingPoems(hub.Module):
...
@@ -38,10 +39,10 @@ class ReadingPicturesWritingPoems(hub.Module):
Return
Return
bool
bool
"""
"""
if
(
len
(
string
)
<=
1
):
# 去除只有单个字或者为空的字符串
if
(
len
(
string
)
<=
1
):
# 去除只有单个字或者为空的字符串
return
False
return
False
for
chart
in
string
:
# 把除了中文的所有字母、数字、符号去除
for
chart
in
string
:
# 把除了中文的所有字母、数字、符号去除
if
(
chart
<
u
'
\u4e00
'
or
chart
>
u
'
\u9fff
'
):
if
(
chart
<
u
'
\u4e00
'
or
chart
>
u
'
\u9fff
'
):
return
False
return
False
...
@@ -52,10 +53,12 @@ class ReadingPicturesWritingPoems(hub.Module):
...
@@ -52,10 +53,12 @@ class ReadingPicturesWritingPoems(hub.Module):
results_image
=
self
.
module_image
.
classification
(
data
=
input_dict
)
results_image
=
self
.
module_image
.
classification
(
data
=
input_dict
)
PictureClassification
=
list
(
results_image
[
0
][
0
].
keys
())[
0
]
PictureClassification
=
list
(
results_image
[
0
][
0
].
keys
())[
0
]
translator
=
Translator
(
to_lang
=
"chinese"
)
translator
=
Translator
(
to_lang
=
"chinese"
)
PictureClassification_ch
=
translator
.
translate
(
"{}"
.
format
(
PictureClassification
))
PictureClassification_ch
=
translator
.
translate
(
"{}"
.
format
(
PictureClassification
))
texts
=
[
"{}"
.
format
(
PictureClassification_ch
)]
texts
=
[
"{}"
.
format
(
PictureClassification_ch
)]
results_keywords
=
self
.
module_similar
.
generate
(
texts
=
texts
,
use_gpu
=
use_gpu
,
beam_width
=
20
)
results_keywords
=
self
.
module_similar
.
generate
(
Words
=
[]
# 将符合标准的近义词保存在这里(标准:字符串为中文且长度大于1)
texts
=
texts
,
use_gpu
=
use_gpu
,
beam_width
=
20
)
Words
=
[]
# 将符合标准的近义词保存在这里(标准:字符串为中文且长度大于1)
for
item
in
range
(
20
):
for
item
in
range
(
20
):
if
(
self
.
is_chinese
(
results_keywords
[
0
][
item
])):
if
(
self
.
is_chinese
(
results_keywords
[
0
][
item
])):
Words
.
append
(
results_keywords
[
0
][
item
])
Words
.
append
(
results_keywords
[
0
][
item
])
...
@@ -65,10 +68,11 @@ class ReadingPicturesWritingPoems(hub.Module):
...
@@ -65,10 +68,11 @@ class ReadingPicturesWritingPoems(hub.Module):
ThirdWord
=
Words
[
4
]
+
Words
[
5
]
ThirdWord
=
Words
[
4
]
+
Words
[
5
]
FourthWord
=
Words
[
6
]
+
Words
[
7
]
FourthWord
=
Words
[
6
]
+
Words
[
7
]
# 出句和对句,也可以理解为上下句(专业讲法是出句和对句,古诗词是中国传统文化,出句和对句的英文翻译即拼音)
# 出句和对句,也可以理解为上下句(专业讲法是出句和对句,古诗词是中国传统文化,出句和对句的英文翻译即拼音)
ChuJu
=
FirstWord
+
SecondWord
# 出句
ChuJu
=
FirstWord
+
SecondWord
# 出句
DuiJu
=
ThirdWord
+
FourthWord
# 对句
DuiJu
=
ThirdWord
+
FourthWord
# 对句
FirstPoetry
=
[
"{:.5},{:.5}。"
.
format
(
ChuJu
,
DuiJu
)]
# 古诗词的上阕
FirstPoetry
=
[
"{:.5},{:.5}。"
.
format
(
ChuJu
,
DuiJu
)]
# 古诗词的上阕
results
=
self
.
module_poem
.
generate
(
texts
=
FirstPoetry
,
use_gpu
=
use_gpu
,
beam_width
=
5
)
results
=
self
.
module_poem
.
generate
(
texts
=
FirstPoetry
,
use_gpu
=
use_gpu
,
beam_width
=
5
)
SecondPoetry
=
[
"{:.12}"
.
format
(
results
[
0
][
0
])]
SecondPoetry
=
[
"{:.12}"
.
format
(
results
[
0
][
0
])]
Poetrys
=
[]
Poetrys
=
[]
Poetrys
.
append
(
FirstPoetry
)
Poetrys
.
append
(
FirstPoetry
)
...
@@ -80,7 +84,7 @@ class ReadingPicturesWritingPoems(hub.Module):
...
@@ -80,7 +84,7 @@ class ReadingPicturesWritingPoems(hub.Module):
'image'
:
image
,
'image'
:
image
,
'Poetrys'
:
"{}"
.
format
(
Poetrys
[
0
][
0
]
+
Poetrys
[
1
][
0
])
'Poetrys'
:
"{}"
.
format
(
Poetrys
[
0
][
0
]
+
Poetrys
[
1
][
0
])
}]
}]
return
results
return
results
@
runnable
@
runnable
...
@@ -135,7 +139,7 @@ class ReadingPicturesWritingPoems(hub.Module):
...
@@ -135,7 +139,7 @@ class ReadingPicturesWritingPoems(hub.Module):
type
=
str
,
type
=
str
,
default
=
None
,
default
=
None
,
help
=
"Pictures to write poetry"
)
help
=
"Pictures to write poetry"
)
def
check_input_data
(
self
,
args
):
def
check_input_data
(
self
,
args
):
input_data
=
[]
input_data
=
[]
if
args
.
input_image
:
if
args
.
input_image
:
...
@@ -145,6 +149,7 @@ class ReadingPicturesWritingPoems(hub.Module):
...
@@ -145,6 +149,7 @@ class ReadingPicturesWritingPoems(hub.Module):
input_data
=
args
.
input_image
input_data
=
args
.
input_image
if
input_data
==
[]:
if
input_data
==
[]:
raise
RuntimeError
(
"The input data is inconsistent with expectations."
)
raise
RuntimeError
(
"The input data is inconsistent with expectations."
)
return
input_data
return
input_data
hub_module/modules/text/text_generation/reading_pictures_writing_poems_for_midautumn/MidAutumnDetection/__init__.py
浏览文件 @
7098f925
hub_module/modules/text/text_generation/reading_pictures_writing_poems_for_midautumn/MidAutumnDetection/module.py
浏览文件 @
7098f925
...
@@ -118,9 +118,7 @@ class MODULE(hub.Module):
...
@@ -118,9 +118,7 @@ class MODULE(hub.Module):
self
.
add_module_config_arg
()
self
.
add_module_config_arg
()
self
.
add_module_input_arg
()
self
.
add_module_input_arg
()
args
=
self
.
parser
.
parse_args
(
argvs
)
args
=
self
.
parser
.
parse_args
(
argvs
)
results
=
self
.
predict
(
results
=
self
.
predict
(
paths
=
[
args
.
input_path
],
use_gpu
=
args
.
use_gpu
)
paths
=
[
args
.
input_path
],
use_gpu
=
args
.
use_gpu
)
return
results
return
results
def
add_module_config_arg
(
self
):
def
add_module_config_arg
(
self
):
...
...
hub_module/modules/text/text_generation/reading_pictures_writing_poems_for_midautumn/MidAutumnPoetry/__init__.py
浏览文件 @
7098f925
hub_module/modules/text/text_generation/reading_pictures_writing_poems_for_midautumn/MidAutumnPoetry/module.py
浏览文件 @
7098f925
...
@@ -174,4 +174,3 @@ class ErnieGen(hub.NLPPredictionModule):
...
@@ -174,4 +174,3 @@ class ErnieGen(hub.NLPPredictionModule):
texts
=
input_data
,
use_gpu
=
args
.
use_gpu
,
beam_width
=
args
.
beam_width
)
texts
=
input_data
,
use_gpu
=
args
.
use_gpu
,
beam_width
=
args
.
beam_width
)
return
results
return
results
\ No newline at end of file
hub_module/modules/text/text_generation/reading_pictures_writing_poems_for_midautumn/__init__.py
浏览文件 @
7098f925
hub_module/modules/text/text_generation/reading_pictures_writing_poems_for_midautumn/module.py
浏览文件 @
7098f925
...
@@ -14,6 +14,7 @@ from translate import Translator
...
@@ -14,6 +14,7 @@ from translate import Translator
import
reading_pictures_writing_poems_for_midautumn.MidAutumnDetection.module
as
MidAutumnDetection
import
reading_pictures_writing_poems_for_midautumn.MidAutumnDetection.module
as
MidAutumnDetection
import
reading_pictures_writing_poems_for_midautumn.MidAutumnPoetry.module
as
MidAutumnPoetry
import
reading_pictures_writing_poems_for_midautumn.MidAutumnPoetry.module
as
MidAutumnPoetry
@
moduleinfo
(
@
moduleinfo
(
name
=
"reading_pictures_writing_poems_for_midautumn"
,
name
=
"reading_pictures_writing_poems_for_midautumn"
,
version
=
"1.0.0"
,
version
=
"1.0.0"
,
...
@@ -26,20 +27,27 @@ class ReadingPicturesWritingPoems(hub.Module):
...
@@ -26,20 +27,27 @@ class ReadingPicturesWritingPoems(hub.Module):
"""
"""
Initialize with the necessary elements
Initialize with the necessary elements
"""
"""
self
.
pretrained_model_path
=
os
.
path
.
join
(
self
.
directory
,
"assets"
,
"infer_model"
)
self
.
pretrained_model_path
=
os
.
path
.
join
(
self
.
directory
,
"assets"
,
self
.
module_image
=
MidAutumnDetection
.
MODULE
(
directory
=
"reading_pictures_writing_poems_for_midautumn/MidAutumnDetection"
)
# 调用目标检测的模型
"infer_model"
)
self
.
module_similar
=
MidAutumnPoetry
.
ErnieGen
(
directory
=
'reading_pictures_writing_poems_for_midautumn/MidAutumnPoetry'
)
# 调用根据关键词生成古诗上阕的模型
self
.
module_image
=
MidAutumnDetection
.
MODULE
(
self
.
module_poem
=
hub
.
Module
(
name
=
"ernie_gen_poetry"
)
# 调用古诗生成的模型
directory
=
"reading_pictures_writing_poems_for_midautumn/MidAutumnDetection"
)
# 调用目标检测的模型
self
.
module_similar
=
MidAutumnPoetry
.
ErnieGen
(
directory
=
'reading_pictures_writing_poems_for_midautumn/MidAutumnPoetry'
)
# 调用根据关键词生成古诗上阕的模型
self
.
module_poem
=
hub
.
Module
(
name
=
"ernie_gen_poetry"
)
# 调用古诗生成的模型
def
WritingPoem
(
self
,
images
,
use_gpu
=
False
):
def
WritingPoem
(
self
,
images
,
use_gpu
=
False
):
# 目标检测,输入图片,输入得分最高的标签
# 目标检测,输入图片,输入得分最高的标签
results_image
=
self
.
module_image
.
predict
(
images
=
images
)
results_image
=
self
.
module_image
.
predict
(
images
=
images
)
best
=
{
'score'
:
0
,
'category'
:
'none'
}
best
=
{
'score'
:
0
,
'category'
:
'none'
}
for
item
in
results_image
:
for
item
in
results_image
:
for
items
in
item
:
for
items
in
item
:
if
(
items
[
'score'
]
>
best
[
'score'
]):
if
(
items
[
'score'
]
>
best
[
'score'
]):
best
[
'score'
],
best
[
'category'
]
=
items
[
'score'
],
items
[
'category'
]
best
[
'score'
],
best
[
'category'
]
=
items
[
'score'
],
items
[
'category'
]
if
best
[
'category'
]
==
'MoonCake'
:
if
best
[
'category'
]
==
'MoonCake'
:
objects
=
[
'月饼'
]
objects
=
[
'月饼'
]
elif
best
[
'category'
]
==
'moon'
:
elif
best
[
'category'
]
==
'moon'
:
...
@@ -51,10 +59,12 @@ class ReadingPicturesWritingPoems(hub.Module):
...
@@ -51,10 +59,12 @@ class ReadingPicturesWritingPoems(hub.Module):
else
:
else
:
objects
=
[
'中秋节'
]
objects
=
[
'中秋节'
]
# 根据关键词生成古诗上阕
# 根据关键词生成古诗上阕
FirstPoetrys
=
self
.
module_similar
.
generate
(
texts
=
objects
,
use_gpu
=
True
,
beam_width
=
5
)
FirstPoetrys
=
self
.
module_similar
.
generate
(
texts
=
objects
,
use_gpu
=
True
,
beam_width
=
5
)
FirstPoetry
=
[
FirstPoetrys
[
0
][
0
]]
FirstPoetry
=
[
FirstPoetrys
[
0
][
0
]]
# 调用古诗生成模型,使用上阕生成下阕
# 调用古诗生成模型,使用上阕生成下阕
SecondPoetry
=
self
.
module_poem
.
generate
(
texts
=
FirstPoetry
,
use_gpu
=
True
,
beam_width
=
5
)
SecondPoetry
=
self
.
module_poem
.
generate
(
texts
=
FirstPoetry
,
use_gpu
=
True
,
beam_width
=
5
)
Poetrys
=
[]
Poetrys
=
[]
Poetrys
.
append
(
FirstPoetry
[
0
])
Poetrys
.
append
(
FirstPoetry
[
0
])
Poetrys
.
append
(
SecondPoetry
[
0
][
0
])
Poetrys
.
append
(
SecondPoetry
[
0
][
0
])
...
@@ -62,7 +72,7 @@ class ReadingPicturesWritingPoems(hub.Module):
...
@@ -62,7 +72,7 @@ class ReadingPicturesWritingPoems(hub.Module):
'images'
:
images
,
'images'
:
images
,
'Poetrys'
:
"{}"
.
format
(
Poetrys
[
0
]
+
Poetrys
[
1
])
'Poetrys'
:
"{}"
.
format
(
Poetrys
[
0
]
+
Poetrys
[
1
])
}]
}]
return
results
return
results
@
runnable
@
runnable
...
@@ -117,7 +127,7 @@ class ReadingPicturesWritingPoems(hub.Module):
...
@@ -117,7 +127,7 @@ class ReadingPicturesWritingPoems(hub.Module):
type
=
str
,
type
=
str
,
default
=
None
,
default
=
None
,
help
=
"Pictures to write poetry"
)
help
=
"Pictures to write poetry"
)
def
check_input_data
(
self
,
args
):
def
check_input_data
(
self
,
args
):
input_data
=
[]
input_data
=
[]
if
args
.
input_image
:
if
args
.
input_image
:
...
@@ -127,6 +137,7 @@ class ReadingPicturesWritingPoems(hub.Module):
...
@@ -127,6 +137,7 @@ class ReadingPicturesWritingPoems(hub.Module):
input_data
=
args
.
input_image
input_data
=
args
.
input_image
if
input_data
==
[]:
if
input_data
==
[]:
raise
RuntimeError
(
"The input data is inconsistent with expectations."
)
raise
RuntimeError
(
"The input data is inconsistent with expectations."
)
return
input_data
return
input_data
\ No newline at end of file
hub_module/tests/unittests/test_reading_pictures_writing_poems.py
浏览文件 @
7098f925
...
@@ -13,13 +13,12 @@ class ReadingPicturesWritingPoemsTestCase(TestCase):
...
@@ -13,13 +13,12 @@ class ReadingPicturesWritingPoemsTestCase(TestCase):
'image'
:
'castle.jpg'
,
'image'
:
'castle.jpg'
,
'Poetrys'
:
'山川山陵山,沟渠村庄沟。我来春雨余,草木亦已柔。'
'Poetrys'
:
'山川山陵山,沟渠村庄沟。我来春雨余,草木亦已柔。'
}]
}]
def
test_writing_poems
(
self
):
def
test_writing_poems
(
self
):
# test gpu
# test gpu
results
=
self
.
module
.
WritingPoem
(
results
=
self
.
module
.
WritingPoem
(
image
=
self
.
test_image
,
use_gpu
=
True
)
image
=
self
.
test_image
,
use_gpu
=
True
)
self
.
assertEqual
(
results
,
self
.
results
)
self
.
assertEqual
(
results
,
self
.
results
)
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
main
()
main
()
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录