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

Fix ci issue

上级 315a3084
......@@ -81,4 +81,3 @@ dog
* 如果您还有预测数据(没有文本类别),可以将预测数据存放在predict_list.txt文件,文件格式和train_list.txt类似。去掉label一列即可
* 如果您的数据集类别较少,可以不用定义label_list.txt,可以选择定义label_list=["数据集所有类别"]。
* 分类任务中,数据集的label必须从0开始计数
......@@ -12,6 +12,7 @@ import paddle.fluid as fluid
import paddlehub as hub
from translate import Translator
@moduleinfo(
name="reading_pictures_writing_poems",
version="1.0.0",
......@@ -52,9 +53,11 @@ class ReadingPicturesWritingPoems(hub.Module):
results_image = self.module_image.classification(data=input_dict)
PictureClassification = list(results_image[0][0].keys())[0]
translator = Translator(to_lang="chinese")
PictureClassification_ch = translator.translate("{}".format(PictureClassification))
PictureClassification_ch = translator.translate(
"{}".format(PictureClassification))
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)
for item in range(20):
if (self.is_chinese(results_keywords[0][item])):
......@@ -68,7 +71,8 @@ class ReadingPicturesWritingPoems(hub.Module):
ChuJu = FirstWord + SecondWord # 出句
DuiJu = ThirdWord + FourthWord # 对句
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])]
Poetrys = []
Poetrys.append(FirstPoetry)
......@@ -145,6 +149,7 @@ class ReadingPicturesWritingPoems(hub.Module):
input_data = args.input_image
if input_data == []:
raise RuntimeError("The input data is inconsistent with expectations.")
raise RuntimeError(
"The input data is inconsistent with expectations.")
return input_data
......@@ -118,9 +118,7 @@ class MODULE(hub.Module):
self.add_module_config_arg()
self.add_module_input_arg()
args = self.parser.parse_args(argvs)
results = self.predict(
paths=[args.input_path],
use_gpu=args.use_gpu)
results = self.predict(paths=[args.input_path], use_gpu=args.use_gpu)
return results
def add_module_config_arg(self):
......
......@@ -174,4 +174,3 @@ class ErnieGen(hub.NLPPredictionModule):
texts=input_data, use_gpu=args.use_gpu, beam_width=args.beam_width)
return results
\ No newline at end of file
......@@ -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.MidAutumnPoetry.module as MidAutumnPoetry
@moduleinfo(
name="reading_pictures_writing_poems_for_midautumn",
version="1.0.0",
......@@ -26,20 +27,27 @@ class ReadingPicturesWritingPoems(hub.Module):
"""
Initialize with the necessary elements
"""
self.pretrained_model_path = os.path.join(self.directory, "assets", "infer_model")
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.pretrained_model_path = os.path.join(self.directory, "assets",
"infer_model")
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") # 调用古诗生成的模型
def WritingPoem(self, images, use_gpu=False):
# 目标检测,输入图片,输入得分最高的标签
results_image = self.module_image.predict(images = images)
best = {'score':0, 'category':'none'}
results_image = self.module_image.predict(images=images)
best = {'score': 0, 'category': 'none'}
for item in results_image:
for items in item:
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':
objects = ['月饼']
elif best['category'] == 'moon':
......@@ -51,10 +59,12 @@ class ReadingPicturesWritingPoems(hub.Module):
else:
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]]
# 调用古诗生成模型,使用上阕生成下阕
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.append(FirstPoetry[0])
Poetrys.append(SecondPoetry[0][0])
......@@ -127,6 +137,7 @@ class ReadingPicturesWritingPoems(hub.Module):
input_data = args.input_image
if input_data == []:
raise RuntimeError("The input data is inconsistent with expectations.")
raise RuntimeError(
"The input data is inconsistent with expectations.")
return input_data
......@@ -14,12 +14,11 @@ class ReadingPicturesWritingPoemsTestCase(TestCase):
'Poetrys': '山川山陵山,沟渠村庄沟。我来春雨余,草木亦已柔。'
}]
def test_writing_poems(self):
# test gpu
results = self.module.WritingPoem(
image=self.test_image, use_gpu=True)
results = self.module.WritingPoem(image=self.test_image, use_gpu=True)
self.assertEqual(results, self.results)
if __name__ == '__main__':
main()
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册