提交 cafdeb0a 编写于 作者: Y Yibing Liu

Fix docs for detection_output & target_assign

上级 67dc5c7f
...@@ -97,7 +97,9 @@ def detection_output(loc, ...@@ -97,7 +97,9 @@ def detection_output(loc,
nms_eta(float): The parameter for adaptive NMS. nms_eta(float): The parameter for adaptive NMS.
Returns: Returns:
Variable: The detection outputs is a LoDTensor with shape [No, 6]. Variable:
The detection outputs is a LoDTensor with shape [No, 6].
Each row has six values: [label, confidence, xmin, ymin, xmax, ymax]. Each row has six values: [label, confidence, xmin, ymin, xmax, ymax].
`No` is the total number of detections in this mini-batch. For each `No` is the total number of detections in this mini-batch. For each
instance, the offsets in first dimension are called LoD, the offset instance, the offsets in first dimension are called LoD, the offset
...@@ -110,15 +112,15 @@ def detection_output(loc, ...@@ -110,15 +112,15 @@ def detection_output(loc,
Examples: Examples:
.. code-block:: python .. code-block:: python
pb = layers.data(name='prior_box', shape=[10, 4], pb = layers.data(name='prior_box', shape=[10, 4],
append_batch_size=False, dtype='float32') append_batch_size=False, dtype='float32')
pbv = layers.data(name='prior_box_var', shape=[10, 4], pbv = layers.data(name='prior_box_var', shape=[10, 4],
append_batch_size=False, dtype='float32') append_batch_size=False, dtype='float32')
loc = layers.data(name='target_box', shape=[2, 21, 4], loc = layers.data(name='target_box', shape=[2, 21, 4],
append_batch_size=False, dtype='float32') append_batch_size=False, dtype='float32')
scores = layers.data(name='scores', shape=[2, 21, 10], scores = layers.data(name='scores', shape=[2, 21, 10],
append_batch_size=False, dtype='float32') append_batch_size=False, dtype='float32')
nmsed_outs = fluid.layers.detection_output(scores=scores, nmsed_outs = fluid.layers.detection_output(scores=scores,
loc=loc, loc=loc,
prior_box=pb, prior_box=pb,
prior_box_var=pbv) prior_box_var=pbv)
...@@ -296,8 +298,6 @@ def target_assign(input, ...@@ -296,8 +298,6 @@ def target_assign(input,
mismatch_value=None, mismatch_value=None,
name=None): name=None):
""" """
**Target assigner operator**
This operator can be, for given the target bounding boxes or labels, This operator can be, for given the target bounding boxes or labels,
to assign classification and regression targets to each prediction as well as to assign classification and regression targets to each prediction as well as
weights to prediction. The weights is used to specify which prediction would weights to prediction. The weights is used to specify which prediction would
...@@ -311,20 +311,24 @@ def target_assign(input, ...@@ -311,20 +311,24 @@ def target_assign(input,
1. Assigning all outpts based on `match_indices`: 1. Assigning all outpts based on `match_indices`:
If id = match_indices[i][j] > 0, .. code-block:: text
If id = match_indices[i][j] > 0,
out[i][j][0 : K] = X[lod[i] + id][j % P][0 : K] out[i][j][0 : K] = X[lod[i] + id][j % P][0 : K]
out_weight[i][j] = 1. out_weight[i][j] = 1.
Otherwise, Otherwise,
out[j][j][0 : K] = {mismatch_value, mismatch_value, ...} out[j][j][0 : K] = {mismatch_value, mismatch_value, ...}
out_weight[i][j] = 0. out_weight[i][j] = 0.
2. Assigning out_weight based on `neg_indices` if `neg_indices` is provided: 2. Assigning out_weight based on `neg_indices` if `neg_indices` is provided:
Assumed that the row offset for each instance in `neg_indices` is called neg_lod, Assumed that the row offset for each instance in `neg_indices` is called neg_lod,
for i-th instance and each `id` of neg_indices in this instance: for i-th instance and each `id` of neg_indices in this instance:
.. code-block:: text
out[i][id][0 : K] = {mismatch_value, mismatch_value, ...} out[i][id][0 : K] = {mismatch_value, mismatch_value, ...}
out_weight[i][id] = 1.0 out_weight[i][id] = 1.0
...@@ -341,10 +345,23 @@ def target_assign(input, ...@@ -341,10 +345,23 @@ def target_assign(input,
mismatch_value (float32): Fill this value to the mismatched location. mismatch_value (float32): Fill this value to the mismatched location.
Returns: Returns:
out (Variable): The output is a 3D Tensor with shape [N, P, K], tuple:
N and P is the same as they are in `neg_indices`, K is the
same as it in input of X. If `match_indices[i][j]`. A tuple(out, out_weight) is returned. out is a 3D Tensor with
out_weight (Variable): The weight for output with the shape of [N, P, 1]. shape [N, P, K], N and P is the same as they are in
`neg_indices`, K is the same as it in input of X. If
`match_indices[i][j]`. out_weight is the weight for output with
the shape of [N, P, 1].
Examples:
.. code-block:: python
matched_indices, matched_dist = fluid.layers.bipartite_match(iou)
gt = layers.data(
name='gt', shape=[1, 1], dtype='int32', lod_level=1)
trg, trg_weight = layers.target_assign(
gt, matched_indices, mismatch_value=0)
""" """
helper = LayerHelper('target_assign', **locals()) helper = LayerHelper('target_assign', **locals())
out = helper.create_tmp_variable(dtype=input.dtype) out = helper.create_tmp_variable(dtype=input.dtype)
......
...@@ -3466,7 +3466,9 @@ def nce(input, ...@@ -3466,7 +3466,9 @@ def nce(input,
input (Variable): input variable. input (Variable): input variable.
label (Variable): label. label (Variable): label.
num_total_classes (int):${num_total_classes_comment} num_total_classes (int):${num_total_classes_comment}
sample_weight (int): ${sample_weight_comment} sample_weight (Variable|None): A Variable of shape [batch_size, 1]
storing a weight for each sample. The default weight for each
sample is 1.0.
param_attr (ParamAttr|None): attributes for parameter param_attr (ParamAttr|None): attributes for parameter
bias_attr (ParamAttr|None): attributes for bias bias_attr (ParamAttr|None): attributes for bias
num_neg_samples (int): ${num_neg_samples_comment} num_neg_samples (int): ${num_neg_samples_comment}
...@@ -4638,10 +4640,6 @@ def random_crop(x, shape, seed=None): ...@@ -4638,10 +4640,6 @@ def random_crop(x, shape, seed=None):
""" """
${comment} ${comment}
Examples:
>>> img = fluid.layers.data("img", [3, 256, 256])
>>> cropped_img = fluid.layers.random_crop(img, shape=[3, 224, 224])
Args: Args:
x(${x_type}): ${x_comment} x(${x_type}): ${x_comment}
shape(${shape_type}): ${shape_comment} shape(${shape_type}): ${shape_comment}
...@@ -4650,7 +4648,10 @@ def random_crop(x, shape, seed=None): ...@@ -4650,7 +4648,10 @@ def random_crop(x, shape, seed=None):
Returns: Returns:
${out_comment} ${out_comment}
Examples:
>>> img = fluid.layers.data("img", [3, 256, 256])
>>> cropped_img = fluid.layers.random_crop(img, shape=[3, 224, 224])
""" """
helper = LayerHelper("random_crop", **locals()) helper = LayerHelper("random_crop", **locals())
dtype = helper.input_dtype() dtype = helper.input_dtype()
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册