From 49d4f822691c80624c396bc8e4d3093beaed8f5c Mon Sep 17 00:00:00 2001 From: saxon-zh <saxon.zh@gmail.com> Date: Fri, 18 Sep 2020 08:50:54 +0000 Subject: [PATCH] add zh-CN doc for paddle.metric.accuracy & paddle.metric.auc --- doc/paddle/api/not_display_doc_list | 2 - doc/paddle/api/paddle/metric/accuracy_cn.rst | 53 +++++++++++++++ doc/paddle/api/paddle/metric/auc_cn.rst | 71 ++++++++++++++++++++ 3 files changed, 124 insertions(+), 2 deletions(-) create mode 100644 doc/paddle/api/paddle/metric/accuracy_cn.rst create mode 100644 doc/paddle/api/paddle/metric/auc_cn.rst diff --git a/doc/paddle/api/not_display_doc_list b/doc/paddle/api/not_display_doc_list index 4b4521eb1..d29ca804f 100644 --- a/doc/paddle/api/not_display_doc_list +++ b/doc/paddle/api/not_display_doc_list @@ -1,5 +1,3 @@ paddle.utils paddle.incubate paddle.hapi.progressbar.ProgressBar -paddle.metric.accuracy -paddle.metric.auc diff --git a/doc/paddle/api/paddle/metric/accuracy_cn.rst b/doc/paddle/api/paddle/metric/accuracy_cn.rst new file mode 100644 index 000000000..0ef4deb37 --- /dev/null +++ b/doc/paddle/api/paddle/metric/accuracy_cn.rst @@ -0,0 +1,53 @@ +.. _cn_api_paddle_metric_accuracy: + +accuracy +------------------------------- + +.. py:function:: paddle.metric.accuracy(input, label, k=1, correct=None, total=None) + +accuracy layer。 å‚考 https://en.wikipedia.org/wiki/Precision_and_recall + +ä½¿ç”¨è¾“å…¥å’Œæ ‡ç¾è®¡ç®—准确率。 如果æ£ç¡®çš„æ ‡ç¾åœ¨topkä¸ªé¢„æµ‹å€¼é‡Œï¼Œåˆ™è®¡ç®—ç»“æžœåŠ 1。注æ„:输出æ£ç¡®çŽ‡çš„类型由input类型决定,inputå’Œlable的类型å¯ä»¥ä¸ä¸€æ ·ã€‚ + +å‚æ•° +::::::::: + + - **input** (Tensor|LoDTensor)-æ•°æ®ç±»åž‹ä¸ºfloat32,float64。输入为网络的预测值。shape为 ``[sample_number, class_dim]`` 。 + - **label** (Tensor|LoDTensor)-æ•°æ®ç±»åž‹ä¸ºint64,int32。输入为数æ®é›†çš„æ ‡ç¾ã€‚shape为 ``[sample_number, 1]`` 。 + - **k** (int64|int32) - å–æ¯ä¸ªç±»åˆ«ä¸k个预测值用于计算。 + - **correct** (int64|int32)-æ£ç¡®é¢„测值的个数。 + - **total** (int64|int32)-总共的预测值。 + +返回 +::::::::: + + ``Tensor``,计算出æ¥çš„æ£ç¡®çŽ‡ï¼Œæ•°æ®ç±»åž‹ä¸ºfloat32çš„Tensor。 + +代ç 示例 +::::::::: + +.. code-block:: python + + import paddle.fluid as fluid + import numpy as np + + data = fluid.layers.data(name="input", shape=[-1, 32, 32], dtype="float32") + label = fluid.layers.data(name="label", shape=[-1,1], dtype="int") + fc_out = fluid.layers.fc(input=data, size=10) + predict = fluid.layers.softmax(input=fc_out) + result = fluid.layers.accuracy(input=predict, label=label, k=5) + + place = fluid.CPUPlace() + exe = fluid.Executor(place) + + exe.run(fluid.default_startup_program()) + x = np.random.rand(3, 32, 32).astype("float32") + y = np.array([[1],[0],[1]]) + output= exe.run(feed={"input": x,"label": y}, + fetch_list=[result[0]]) + print(output) + + """ + Output: + [array([0.6666667], dtype=float32)] + """ diff --git a/doc/paddle/api/paddle/metric/auc_cn.rst b/doc/paddle/api/paddle/metric/auc_cn.rst new file mode 100644 index 000000000..092380aeb --- /dev/null +++ b/doc/paddle/api/paddle/metric/auc_cn.rst @@ -0,0 +1,71 @@ +.. _cn_api_paddle_metric_auc: + +auc +------------------------------- + +.. py:function:: paddle.metric.auc(input, label, curve='ROC', num_thresholds=200, topk=1, slide_steps=1) + +**Area Under the Curve(AUC) Layer** + +è¯¥å±‚æ ¹æ®å‰å‘è¾“å‡ºå’Œæ ‡ç¾è®¡ç®—AUC,在二分类(binary classification)估计ä¸å¹¿æ³›ä½¿ç”¨ã€‚ + +æ³¨ï¼šå¦‚æžœè¾“å…¥æ ‡æ³¨åŒ…å«ä¸€ç§å€¼ï¼Œåªæœ‰0或1两ç§æƒ…况,数æ®ç±»åž‹åˆ™å¼ºåˆ¶è½¬æ¢æˆå¸ƒå°”值。相关定义å¯ä»¥åœ¨è¿™é‡Œ: https://en.wikipedia.org/wiki/Receiver_operating_characteristic#Area_under_the_curve 找到 + +有两ç§å¯èƒ½çš„曲线: + +1. ROC:å—试者工作特å¾æ›²çº¿ + +2. PR:准确率å¬å›žçŽ‡æ›²çº¿ + +å‚数: +::::::::: + + - **input** (Tensor|LoDTensor) - æ•°æ®ç±»åž‹ä¸ºfloat32,float64。浮点二维å˜é‡ï¼Œå€¼çš„范围为[0,1]。æ¯ä¸€è¡Œé™åºæŽ’列。该输入为网络预测值的输入。 + - **label** (Tensor|LoDTensor) - æ•°æ®ç±»åž‹ä¸ºint32,int64。二维整型å˜é‡ï¼Œä¸ºè®ç»ƒæ•°æ®çš„æ ‡ç¾ã€‚ + - **curve** (str) - 曲线类型,å¯ä»¥ä¸º ``ROC`` 或 ``PR``,默认 ``ROC``。 + - **num_thresholds** (int) - å°†roc曲线离散化时使用的临界值数。默认200。 + - **topk** (int) - å–topk的输出值用于计算。 + - **slide_steps** (int) - 当计算batch auc时,ä¸ä»…用当å‰æ¥ä¹Ÿç”¨äºŽå…ˆå‰æ¥ã€‚slide_steps=1,表示用当å‰æ¥ï¼›slide_steps = 3表示用当å‰æ¥å’Œå‰ä¸¤æ¥ï¼›slide_steps = 0,则用所有æ¥ã€‚ + +返回: +::::::::: + + ``Tensor``, 代表当å‰AUC的一个元组, æ•°æ®ç±»åž‹ä¸ºfloat32或float64çš„Tensor。 + 返回的元组为auc_out, batch_auc_out, [batch_stat_pos, batch_stat_neg, stat_pos, stat_neg]。 + auc_out为准确率的结果。 + batch_auc_out为batch准确率的结果。 + batch_stat_pos为batch计算时label=1的统计值 + batch_stat_neg为batch计算时label=0的统计值 + stat_pos计算时label=1的统计值 + stat_neg为计算时label=0的统计值 + + +代ç 示例: +::::::::: + +.. code-block:: python + + import paddle.fluid as fluid + import numpy as np + + data = fluid.layers.data(name="input", shape=[-1, 32,32], dtype="float32") + label = fluid.layers.data(name="label", shape=[1], dtype="int") + fc_out = fluid.layers.fc(input=data, size=2) + predict = fluid.layers.softmax(input=fc_out) + result=fluid.layers.auc(input=predict, label=label) + + place = fluid.CPUPlace() + exe = fluid.Executor(place) + + exe.run(fluid.default_startup_program()) + x = np.random.rand(3,32,32).astype("float32") + y = np.array([1,0,1]) + output= exe.run(feed={"input": x,"label": y}, + fetch_list=[result[0]]) + print(output) + """ + output: + [array([0.5])] + """ + + -- GitLab