未验证 提交 276edcee 编写于 作者: X Xiaoyao Xi 提交者: GitHub

improve multiple api docs under fluid.metrics, test=document_preview (#1301)

* fix apis, test=document_preview

* fix apis, test=document_preview

* fix apis, test=document_preview

* fix apis, test=document_preview
上级 edea31e9
...@@ -5,7 +5,11 @@ CompositeMetric ...@@ -5,7 +5,11 @@ CompositeMetric
.. py:class:: paddle.fluid.metrics.CompositeMetric(name=None) .. py:class:: paddle.fluid.metrics.CompositeMetric(name=None)
在一个实例中组合多个指标。例如,将F1、准确率、召回率合并为一个指标。 创建一个可以容纳若干个评价指标(如F1, accuracy, recall等)的容器,评价指标添加完成后,通过调用eval()方法可自动计算该容器内的所有评价指标。
**注意,只有输入参数列表完全相同的评价指标才可被加入到同一个CompositeMetric实例内。**
继承自:MetricBase
**代码示例** **代码示例**
...@@ -34,29 +38,34 @@ CompositeMetric ...@@ -34,29 +38,34 @@ CompositeMetric
.. py:method:: add_metric(metric) .. py:method:: add_metric(metric)
CompositeMetric添加一个度量指标 容器内添加一个新的评价指标。注意新添加的评价指标的输入参数列表必须与容器里已有的其他指标保持一致。
参数: 参数:
- **metric** – MetricBase的一个实例。 - **metric** (MetricBase) – 评价指标对象,一个MetricBase的实例。
返回:无
.. py:method:: update(preds, labels) .. py:method:: update(preds, labels)
更新序列中的每个指标。 更新容器中的每个评价指标。
参数: 参数:
- **preds** (numpy.array) - 当前mini batch的预测 - **preds** (numpy.array) - 当前mini-batch的预测结果,输入的shape和dtype应与该容器内添加的评价指标的要求保持一致。
- **labels** (numpy.array) - 当前minibatch的label,如果标签是one-hot或soft-laebl 编码,应该自定义相应的更新规则。 - **labels** (numpy.array) - 当前mini-batch的真实标签,输入的shape和dtype应与该容器内添加的评价指标的要求保持一致
返回:无
.. py:method:: eval() .. py:method:: eval()
按顺序评估每个指标。 按照添加顺序计算出各个评价指标。
参数: 无
返回: 列表存储的各个评价指标的计算结果。每个计算结果的数据类型和shape取决于被添加的评价指标的定义
返回:Python中的度量值列表。 返回类型: list
返回类型:list(float | numpy.array)
......
...@@ -5,14 +5,7 @@ EditDistance ...@@ -5,14 +5,7 @@ EditDistance
.. py:class:: paddle.fluid.metrics.EditDistance(name) .. py:class:: paddle.fluid.metrics.EditDistance(name)
编辑距离是通过计算将一个字符串转换为另一个字符串所需的最小编辑操作数(添加、删除或替换)来量化两个字符串(例如单词)彼此不相似的程度一种方法。 用于管理字符串的编辑距离。编辑距离是通过计算将一个字符串转换为另一个字符串所需的最小编辑操作数(添加、删除或替换)来量化两个字符串(例如单词)彼此不相似的程度一种方法。 参考 https://en.wikipedia.org/wiki/Edit_distance。
参考 https://en.wikipedia.org/wiki/Edit_distance。
此EditDistance类使用更新函数获取两个输入:
1. distance:一个形状为(batch_size, 1)的numpy.array,每个元素表示两个序列之间的编辑距离;
2. seq_num:一个整型/浮点型数,代表序列对的数目,并返回多个序列对的整体编辑距离。
参数:
- **name** - 度量标准名称
**代码示例** **代码示例**
...@@ -41,26 +34,24 @@ EditDistance ...@@ -41,26 +34,24 @@ EditDistance
print("the average edit distance for batch0 and batch1 is %.2f and the wrong instance ratio is %.2f " % (avg_distance, wrong_instance_ratio)) print("the average edit distance for batch0 and batch1 is %.2f and the wrong instance ratio is %.2f " % (avg_distance, wrong_instance_ratio))
.. py:method:: distance_evaluator.reset() .. py:method:: reset()
.. code-block:: python 清空存储结果。
参数:无
import paddle.fluid as fluid 返回:无
edit_distances_batch2 = np.random.randint(low = 0, high = 10, size = (batch_size, 1))
seq_num_batch2 = batch_size
distance_evaluator.update(edit_distances_batch2, seq_num_batch2)
avg_distance, wrong_instance_ratio = distance_evaluator.eval()
print("the average edit distance for batch2 is %.2f and the wrong instance ratio is %.2f " % (avg_distance, wrong_instance_ratio))
.. py:method:: update(distances, seq_num) .. py:method:: update(distances, seq_num)
更新整体的编辑距离。 更新存储结果
参数: 参数:
- **distances** – 一个形状为(batch_size, 1)的numpy.array,每个元素代表两个序列间的距离。(edit) – - **distances** – 一个形状为(batch_size, 1)的numpy.array,每个元素代表两个序列间的距离。
- **seq_num** – 一个整型/浮点型值,代表序列对的数量。 - **seq_num** – 一个整型/浮点型值,代表序列对的数量。
返回:无
.. py:method:: eval() .. py:method:: eval()
......
...@@ -5,10 +5,7 @@ Precision ...@@ -5,10 +5,7 @@ Precision
.. py:class:: paddle.fluid.metrics.Precision(name=None) .. py:class:: paddle.fluid.metrics.Precision(name=None)
Precision(也称为 positive predictive value,正预测值)是被预测为正样例中实际为正的比例。 精确率Precision(也称为 positive predictive value,正预测值)是被预测为正样例中实际为正的比例。 https://en.wikipedia.org/wiki/Evaluation_of_binary_classifiers 该类管理二分类任务的precision分数。
https://en.wikipedia.org/wiki/Evaluation_of_binary_classifiers
该类管理二分类任务的precision分数。
**代码示例** **代码示例**
...@@ -32,13 +29,31 @@ https://en.wikipedia.org/wiki/Evaluation_of_binary_classifiers ...@@ -32,13 +29,31 @@ https://en.wikipedia.org/wiki/Evaluation_of_binary_classifiers
labels = np.array(labels) labels = np.array(labels)
metric.update(preds=preds, labels=labels) metric.update(preds=preds, labels=labels)
numpy_precision = metric.eval() precision = metric.eval()
print("expct precision: %.2f and got %.2f" % ( 3.0 / 5.0, numpy_precision)) print("expected precision: %.2f and got %.2f" % ( 3.0 / 5.0, precision))
.. py:method:: update(preds, labels)
使用当前mini-batch的预测结果更新精确率的计算。
参数:
- **preds** (numpy.array) - 当前mini-batch的预测结果,二分类sigmoid函数的输出,shape为[batch_size, 1],数据类型为'float64'或'float32'。
- **labels** (numpy.array) - 当前mini-batch的真实标签,输入的shape应与preds保持一致,shape为[batch_size, 1],数据类型为'int32'或'int64'
返回:无
.. py:method:: eval()
计算出最终的精确率。
参数:无
返回: 精确率的计算结果。标量输出,float类型
返回类型:float
...@@ -5,11 +5,7 @@ Recall ...@@ -5,11 +5,7 @@ Recall
.. py:class:: paddle.fluid.metrics.Recall(name=None) .. py:class:: paddle.fluid.metrics.Recall(name=None)
召回率(也称为敏感度)是指得到的相关实例数占相关实例总数的比重 召回率Recall(也称为敏感度)是指得到的相关实例数占相关实例总数的比例。https://en.wikipedia.org/wiki/Precision_and_recall 该类管理二分类任务的召回率。
https://en.wikipedia.org/wiki/Precision_and_recall
该类管理二分类任务的召回率。
**代码示例** **代码示例**
...@@ -28,10 +24,39 @@ https://en.wikipedia.org/wiki/Precision_and_recall ...@@ -28,10 +24,39 @@ https://en.wikipedia.org/wiki/Precision_and_recall
preds = np.array(preds) preds = np.array(preds)
labels = np.array(labels) labels = np.array(labels)
metric.update(preds=preds, labels=labels) metric.update(preds=preds, labels=labels)
numpy_precision = metric.eval() recall = metric.eval()
print("expected recall: %.2f and got %.2f" % ( 3.0 / 4.0, recall))
.. py:method:: update(preds, labels)
使用当前mini-batch的预测结果更新召回率的计算。
参数:
- **preds** (numpy.array) - 当前mini-batch的预测结果,二分类sigmoid函数的输出,shape为[batch_size, 1],数据类型为'float64'或'float32'。
- **labels** (numpy.array) - 当前mini-batch的真实标签,输入的shape应与preds保持一致,shape为[batch_size, 1],数据类型为'int32'或'int64'
返回:无
.. py:method:: eval()
计算出最终的召回率。
参数:无
返回:召回率的计算结果。标量输出,float类型
返回类型:float
print("expct precision: %.2f and got %.2f" % ( 3.0 / 4.0, numpy_precision))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册