提交 7098f925 编写于 作者: W wuzewu

Fix ci issue

上级 315a3084
...@@ -81,4 +81,3 @@ dog ...@@ -81,4 +81,3 @@ dog
* 如果您还有预测数据(没有文本类别),可以将预测数据存放在predict_list.txt文件,文件格式和train_list.txt类似。去掉label一列即可 * 如果您还有预测数据(没有文本类别),可以将预测数据存放在predict_list.txt文件,文件格式和train_list.txt类似。去掉label一列即可
* 如果您的数据集类别较少,可以不用定义label_list.txt,可以选择定义label_list=["数据集所有类别"]。 * 如果您的数据集类别较少,可以不用定义label_list.txt,可以选择定义label_list=["数据集所有类别"]。
* 分类任务中,数据集的label必须从0开始计数 * 分类任务中,数据集的label必须从0开始计数
...@@ -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",
...@@ -52,9 +53,11 @@ class ReadingPicturesWritingPoems(hub.Module): ...@@ -52,9 +53,11 @@ 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(
texts=texts, use_gpu=use_gpu, beam_width=20)
Words = [] # 将符合标准的近义词保存在这里(标准:字符串为中文且长度大于1) 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])):
...@@ -68,7 +71,8 @@ class ReadingPicturesWritingPoems(hub.Module): ...@@ -68,7 +71,8 @@ class ReadingPicturesWritingPoems(hub.Module):
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)
...@@ -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
...@@ -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):
......
...@@ -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
...@@ -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(
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") # 调用古诗生成的模型 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])
...@@ -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
...@@ -14,12 +14,11 @@ class ReadingPicturesWritingPoemsTestCase(TestCase): ...@@ -14,12 +14,11 @@ class ReadingPicturesWritingPoemsTestCase(TestCase):
'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()
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册