提交 e6d7c5e9 编写于 作者: M Megvii Engine Team

docs(mge): fix docstring in loss and dataset

GitOrigin-RevId: 6b566734157eaeaa176f735254ac5e8bba96914f
上级 f91881ff
...@@ -69,20 +69,26 @@ class ImageNet(ImageFolder): ...@@ -69,20 +69,26 @@ class ImageNet(ImageFolder):
""" """
def __init__(self, root: str = None, train: bool = True, **kwargs): def __init__(self, root: str = None, train: bool = True, **kwargs):
r"""initilization r"""
initialization:
if ``root`` contains ``self.target_folder`` depent on ``train``: * if ``root`` contains ``self.target_folder`` depent on ``train``:
initialize ImageFolder with target_folder
else: * initialize ImageFolder with target_folder
if all raw files are in ``root``:
parse ``self.target_folder`` from raw files * else:
initialize ImageFolder with ``self.target_folder``
else: * if all raw files are in ``root``:
raise error
* parse ``self.target_folder`` from raw files
* initialize ImageFolder with ``self.target_folder``
* else:
* raise error
:param root: root directory of imagenet data, if root is ``None``, used default_dataset_root :param root: root directory of imagenet data, if root is ``None``, used default_dataset_root
:param train: if ``True``, load the train split, otherwise load the validation split :param train: if ``True``, load the train split, otherwise load the validation split
:param **kwarg: other keyword arguments for ImageFolder init
""" """
# process the root path # process the root path
......
...@@ -50,29 +50,25 @@ class VisionTransform(Transform): ...@@ -50,29 +50,25 @@ class VisionTransform(Transform):
:param order: Input type order. Input is a tuple contains different structures, :param order: Input type order. Input is a tuple contains different structures,
order is used to specify the order of structures. For example, if your input order is used to specify the order of structures. For example, if your input
is (image, boxes) type, then the order should be ("image", "boxes"). is (image, boxes) type, then the order should be ("image", "boxes").
Current available strings & data type are describe below: Current available strings & data type are describe below:
"image":
input image, with shape of (H, W, C) * "image": input image, with shape of (H, W, C)
"coords": * "coords": coordinates, with shape of (N, 2)
coordinates, with shape of (N, 2) * "boxes": bounding boxes, with shape of (N, 4), "xyxy" format,
"boxes": the 1st "xy" represents top left point of a box,
bounding boxes, with shape of (N, 4), "xyxy" format, the 2nd "xy" represents right bottom point.
the 1st "xy" represents top left point of a box, * "mask": map used for segmentation, with shape of (H, W, 1)
the 2nd "xy" represents right bottom point. * "keypoints": keypoints with shape of (N, K, 3), N for number of instances,
"mask": and K for number of keypoints in one instance. The first two dimensions
map used for segmentation, with shape of (H, W, 1) of last axis is coordinate of keypoints and the the 3rd dimension is
"keypoints": the label of keypoints.
keypoints with shape of (N, K, 3), N for number of instances, and K for number of keypoints in one instance. The first two dimensions * "polygons": A sequence contains numpy array, its length is number of instances.
of last axis is coordinate of keypoints and the the 3rd dimension is Each numpy array represents polygon coordinate of one instance.
the label of keypoints. * "category": categories for some data type. For example, "image_category"
"polygons": A sequence contains numpy array, its length is number of instances. means category of the input image and "boxes_category" means categories of
Each numpy array represents polygon coordinate of one instance. bounding boxes.
"category": categories for some data type. For example, "image_category" * "info": information for images such as image shapes and image path.
means category of the input image and "boxes_category" means categories of
bounding boxes.
"info":
information for images such as image shapes and image path.
You can also customize your data types only if you implement the corresponding You can also customize your data types only if you implement the corresponding
_apply_*() methods, otherwise ``NotImplementedError`` will be raised. _apply_*() methods, otherwise ``NotImplementedError`` will be raised.
...@@ -356,7 +352,7 @@ class Resize(VisionTransform): ...@@ -356,7 +352,7 @@ class Resize(VisionTransform):
:param output_size: Target size of image, with (height, width) shape. :param output_size: Target size of image, with (height, width) shape.
:param interpolation: Interpolation method. All methods are listed below: :param interpolation: Interpolation method. All methods are listed below:
* cv2.INTER_NEAREST – a nearest-neighbor interpolation. * cv2.INTER_NEAREST – a nearest-neighbor interpolation.
* cv2.INTER_LINEAR – a bilinear interpolation (used by default). * cv2.INTER_LINEAR – a bilinear interpolation (used by default).
* cv2.INTER_AREA – resampling using pixel area relation. * cv2.INTER_AREA – resampling using pixel area relation.
......
...@@ -117,8 +117,8 @@ def cross_entropy( ...@@ -117,8 +117,8 @@ def cross_entropy(
import numpy as np import numpy as np
from megengine import tensor from megengine import tensor
import megengine.functional as F import megengine.functional as F
data_shape = (1, 2) data_shape = (1, 2)
label_shape = (1, ) label_shape = (1, )
...@@ -156,8 +156,10 @@ def cross_entropy_with_softmax( ...@@ -156,8 +156,10 @@ def cross_entropy_with_softmax(
It has better numerical stability compared with sequential calls to :func:`~.softmax` and :func:`~.cross_entropy`. It has better numerical stability compared with sequential calls to :func:`~.softmax` and :func:`~.cross_entropy`.
When using label smoothing, the label distribution is as follows: When using label smoothing, the label distribution is as follows:
.. math:: .. math::
y^{LS}_{k}=y_{k}\left(1-\alpha\right)+\alpha/K y^{LS}_{k}=y_{k}\left(1-\alpha\right)+\alpha/K
where :math:`y^{LS}` and :math:`y` are new label distribution and origin label distribution respectively. where :math:`y^{LS}` and :math:`y` are new label distribution and origin label distribution respectively.
k is the index of label distribution. :math:`\alpha` is label_smooth and :math:`K` is the number of classes. k is the index of label distribution. :math:`\alpha` is label_smooth and :math:`K` is the number of classes.
...@@ -197,7 +199,7 @@ def triplet_margin_loss( ...@@ -197,7 +199,7 @@ def triplet_margin_loss(
Creates a criterion that measures the triplet loss given an input tensors. Creates a criterion that measures the triplet loss given an input tensors.
.. math:: .. math::
L(a, p, n) = max\left\{d\left(a_{i},p_{i}\right)-d\left(a_{i}, n_{i}\right)+margin, 0\right\},\ L(a, p, n) = max\left\{d\left(a_{i},p_{i}\right)-d\left(a_{i}, n_{i}\right)+margin, 0\right\},\
d\left(x_{i},y_{i}\right)=\left\|x_{i}-y_{i}\right\|_{p} d\left(x_{i},y_{i}\right)=\left\|x_{i}-y_{i}\right\|_{p}
:param anchor: The input tensor representing the anchor samples. :param anchor: The input tensor representing the anchor samples.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册