提交 a338f19f 编写于 作者: Z Zeyu

Merge branch 'develop' of https://github.com/PaddlePaddle/PaddleHub into develop

# PaddleHub 文本分类 # PaddleHub 文本分类
本示例将展示如何使用PaddleHub Finetune API以及[ERNIE](https://github.com/PaddlePaddle/LARK/tree/develop/ERNIE)预训练模型完成分类任务。 本示例将展示如何使用PaddleHub Finetune API以及Transformer类预训练模型完成分类任务。
其中分类任务可以分为两大类: 其中分类任务可以分为两大类:
* 单句分类 * *单句分类*
- 中文情感分析任务 ChnSentiCorp - 中文情感分析任务 ChnSentiCorp
* 句对分类 * *句对分类*
- 语义相似度 LCQMC - 语义相似度 LCQMC
- 检索式问答任务 NLPCC-DBQA - 检索式问答任务 NLPCC-DBQA
...@@ -85,19 +85,17 @@ ClassifyReader中的`data_generator`会自动按照模型对应词表对数据 ...@@ -85,19 +85,17 @@ ClassifyReader中的`data_generator`会自动按照模型对应词表对数据
### Step3: 构建网络并创建分类迁移任务 ### Step3: 构建网络并创建分类迁移任务
```python ```python
# NOTE: 必须使用fluid.program_guard接口传入Module返回的预训练模型program # NOTE: 必须使用fluid.program_guard接口传入Module返回的预训练模型program
with fluid.program_guard(program):
label = fluid.layers.data(name="label", shape=[1], dtype='int64')
pooled_output = outputs["pooled_output"] pooled_output = outputs["pooled_output"]
# feed_list的Tensor顺序不可以调整 # feed_list的Tensor顺序不可以调整
feed_list = [ feed_list = [
inputs["input_ids"].name, inputs["position_ids"].name, inputs["input_ids"].name, inputs["position_ids"].name,
inputs["segment_ids"].name, inputs["input_mask"].name, label.name inputs["segment_ids"].name, inputs["input_mask"].name, label.name
] ]
cls_task = hub.create_text_cls_task( cls_task = hub.create_text_cls_task(
feature=pooled_output, label=label, num_classes=reader.get_num_labels()) feature=pooled_output, num_classes=dataset.num_labels)
``` ```
**NOTE:** 基于预训练模型的迁移学习网络搭建,必须在`with fluid.program_gurad()`作用域内组件网络 **NOTE:** 基于预训练模型的迁移学习网络搭建,必须在`with fluid.program_gurad()`作用域内组件网络
1. `outputs["pooled_output"]`返回了ERNIE/BERT模型对应的[CLS]向量,可以用于句子或句对的特征表达。 1. `outputs["pooled_output"]`返回了ERNIE/BERT模型对应的[CLS]向量,可以用于句子或句对的特征表达。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册