blob: 6f1cb2470b8823e9fabd3f53fea00cb62a59600f [file] [log] [blame]
``mx.io.ImageRecordIter``
==================================================
Description
----------------------
Iterates on image RecordIO files.
Reads batches of images from .rec RecordIO files. One can use ``im2rec.py`` tool
(in tools/) to pack raw image files into RecordIO files. This iterator is less
flexible to customization but is fast and has lot of language bindings. To
iterate over raw images directly use ``ImageIter`` instead (in Python).
**Example**::
data_iter = mx.io.ImageRecordIter(
path_imgrec="./sample.rec", # The target record file.
data_shape=(3, 227, 227), # Output data shape; 227x227 region will be cropped from the original image.
batch_size=4, # Number of items per batch.
resize=256 # Resize the shorter edge to 256 before cropping.
# You can specify more augmentation options. Use help(mx.io.ImageRecordIter) to see all the options.
)
# You can now use the data_iter to access batches of images.
batch = data_iter.next() # first batch.
images = batch.data[0] # This will contain 4 (=batch_size) images each of 3x227x227.
# process the images
...
data_iter.reset() # To restart the iterator from the beginning.
Usage
----------
.. code:: r
mx.io.ImageRecordIter(...)
Arguments
------------------
+----------------------------------------+------------------------------------------------------------+
| Argument | Description |
+========================================+============================================================+
| ``path.imglist`` | string, optional, default=''. |
| | |
| | Path to the image list (.lst) file. Generally created with |
| | tools/im2rec.py. Format (Tab separated): <index of record> |
| | <one or more labels> <relative path from root |
| | folder>. |
+----------------------------------------+------------------------------------------------------------+
| ``path.imgrec`` | string, optional, default=''. |
| | |
| | Path to the image RecordIO (.rec) file or a directory |
| | path. Created with |
| | tools/im2rec.py. |
+----------------------------------------+------------------------------------------------------------+
| ``path.imgidx`` | string, optional, default=''. |
| | |
| | Path to the image RecordIO index (.idx) file. Created with |
| | tools/im2rec.py. |
+----------------------------------------+------------------------------------------------------------+
| ``aug.seq`` | string, optional, default='aug_default'. |
| | |
| | The augmenter names to represent sequence of augmenters to |
| | be applied, seperated by comma. Additional keyword |
| | parameters will be seen by these |
| | augmenters. |
+----------------------------------------+------------------------------------------------------------+
| ``label.width`` | int, optional, default='1'. |
| | |
| | The number of labels per image. |
+----------------------------------------+------------------------------------------------------------+
| ``preprocess.threads`` | int, optional, default='4'. |
| | |
| | The number of threads to do preprocessing. |
+----------------------------------------+------------------------------------------------------------+
| ``verbose`` | boolean, optional, default=1. |
| | |
| | If or not output verbose information. |
+----------------------------------------+------------------------------------------------------------+
| ``num.parts`` | int, optional, default='1'. |
| | |
| | Virtually partition the data into these many parts. |
+----------------------------------------+------------------------------------------------------------+
| ``part.index`` | int, optional, default='0'. |
| | |
| | The *i*-th virtual partition to be read. |
+----------------------------------------+------------------------------------------------------------+
| ``device.id`` | int, optional, default='0'. |
| | |
| | The device id used to create context for internal NDArray. |
| | Setting device_id to -1 will create Context::CPU(0). |
| | Setting device_id to valid positive device id will create |
| | Context::CPUPinned(device_id). Default is |
| | 0. |
+----------------------------------------+------------------------------------------------------------+
| ``shuffle.chunk.size`` | long (non-negative), optional, default=0. |
| | |
| | The data shuffle buffer size in MB. Only valid if shuffle |
| | is |
| | true. |
+----------------------------------------+------------------------------------------------------------+
| ``shuffle.chunk.seed`` | int, optional, default='0'. |
| | |
| | The random seed for shuffling |
+----------------------------------------+------------------------------------------------------------+
| ``seed.aug`` | int or None, optional, default='None'. |
| | |
| | Random seed for augmentations. |
+----------------------------------------+------------------------------------------------------------+
| ``shuffle`` | boolean, optional, default=0. |
| | |
| | Whether to shuffle data randomly or not. |
+----------------------------------------+------------------------------------------------------------+
| ``seed`` | int, optional, default='0'. |
| | |
| | The random seed. |
+----------------------------------------+------------------------------------------------------------+
| ``batch.size`` | int (non-negative), required. |
| | |
| | Batch size. |
+----------------------------------------+------------------------------------------------------------+
| ``round.batch`` | boolean, optional, default=1. |
| | |
| | Whether to use round robin to handle overflow batch or |
| | not. |
+----------------------------------------+------------------------------------------------------------+
| ``prefetch.buffer`` | long (non-negative), optional, default=4. |
| | |
| | Maximum number of batches to prefetch. |
+----------------------------------------+------------------------------------------------------------+
| ``ctx`` | {'cpu', 'gpu'},optional, default='gpu'. |
| | |
| | Context data loader optimized for. |
+----------------------------------------+------------------------------------------------------------+
| ``dtype`` | {None, 'float16', 'float32', 'float64', 'int32', 'int64', |
| | 'int8', 'uint8'},optional, |
| | default='None'. |
| | |
| | Output data type. ``None`` means no change. |
+----------------------------------------+------------------------------------------------------------+
| ``resize`` | int, optional, default='-1'. |
| | |
| | Down scale the shorter edge to a new size before applying |
| | other |
| | augmentations. |
+----------------------------------------+------------------------------------------------------------+
| ``rand.crop`` | boolean, optional, default=0. |
| | |
| | If or not randomly crop the image |
+----------------------------------------+------------------------------------------------------------+
| ``random.resized.crop`` | boolean, optional, default=0. |
| | |
| | If or not perform random resized cropping on the image, as |
| | a standard preprocessing for resnet training on ImageNet |
| | data. |
+----------------------------------------+------------------------------------------------------------+
| ``max.rotate.angle`` | int, optional, default='0'. |
| | |
| | Rotate by a random degree in ``[-v, v]`` |
+----------------------------------------+------------------------------------------------------------+
| ``max.aspect.ratio`` | float, optional, default=0. |
| | |
| | Change the aspect (namely width/height) to a random value. |
| | If min_aspect_ratio is None then the aspect ratio ins |
| | sampled from [1 - max_aspect_ratio, 1 + max_aspect_ratio], |
| | else it is in ``[min_aspect_ratio, |
| | max_aspect_ratio]`` |
+----------------------------------------+------------------------------------------------------------+
| ``min.aspect.ratio`` | float or None, optional, default=None. |
| | |
| | Change the aspect (namely width/height) to a random value |
| | in ``[min_aspect_ratio, |
| | max_aspect_ratio]`` |
+----------------------------------------+------------------------------------------------------------+
| ``max.shear.ratio`` | float, optional, default=0. |
| | |
| | Apply a shear transformation (namely ``(x,y)->(x+my,y)``) |
| | with ``m`` randomly chose from ``[-max_shear_ratio, |
| | max_shear_ratio]`` |
+----------------------------------------+------------------------------------------------------------+
| ``max.crop.size`` | int, optional, default='-1'. |
| | |
| | Crop both width and height into a random size in |
| | ``[min_crop_size, max_crop_size].``Ignored if |
| | ``random_resized_crop`` is |
| | True. |
+----------------------------------------+------------------------------------------------------------+
| ``min.crop.size`` | int, optional, default='-1'. |
| | |
| | Crop both width and height into a random size in |
| | ``[min_crop_size, max_crop_size].``Ignored if |
| | ``random_resized_crop`` is |
| | True. |
+----------------------------------------+------------------------------------------------------------+
| ``max.random.scale`` | float, optional, default=1. |
| | |
| | Resize into ``[width*s, height*s]`` with ``s`` randomly |
| | chosen from ``[min_random_scale, max_random_scale]``. |
| | Ignored if ``random_resized_crop`` is |
| | True. |
+----------------------------------------+------------------------------------------------------------+
| ``min.random.scale`` | float, optional, default=1. |
| | |
| | Resize into ``[width*s, height*s]`` with ``s`` randomly |
| | chosen from ``[min_random_scale, |
| | max_random_scale]``Ignored if ``random_resized_crop`` is |
| | True. |
+----------------------------------------+------------------------------------------------------------+
| ``max.random.area`` | float, optional, default=1. |
| | |
| | Change the area (namely width * height) to a random value |
| | in ``[min_random_area, max_random_area]``. Ignored if |
| | ``random_resized_crop`` is |
| | False. |
+----------------------------------------+------------------------------------------------------------+
| ``min.random.area`` | float, optional, default=1. |
| | |
| | Change the area (namely width * height) to a random value |
| | in ``[min_random_area, max_random_area]``. Ignored if |
| | ``random_resized_crop`` is |
| | False. |
+----------------------------------------+------------------------------------------------------------+
| ``max.img.size`` | float, optional, default=1e+10. |
| | |
| | Set the maximal width and height after all resize and |
| | rotate argumentation are |
| | applied |
+----------------------------------------+------------------------------------------------------------+
| ``min.img.size`` | float, optional, default=0. |
| | |
| | Set the minimal width and height after all resize and |
| | rotate argumentation are |
| | applied |
+----------------------------------------+------------------------------------------------------------+
| ``brightness`` | float, optional, default=0. |
| | |
| | Add a random value in ``[-brightness, brightness]`` to the |
| | brightness of |
| | image. |
+----------------------------------------+------------------------------------------------------------+
| ``contrast`` | float, optional, default=0. |
| | |
| | Add a random value in ``[-contrast, contrast]`` to the |
| | contrast of |
| | image. |
+----------------------------------------+------------------------------------------------------------+
| ``saturation`` | float, optional, default=0. |
| | |
| | Add a random value in ``[-saturation, saturation]`` to the |
| | saturation of |
| | image. |
+----------------------------------------+------------------------------------------------------------+
| ``pca.noise`` | float, optional, default=0. |
| | |
| | Add PCA based noise to the image. |
+----------------------------------------+------------------------------------------------------------+
| ``random.h`` | int, optional, default='0'. |
| | |
| | Add a random value in ``[-random_h, random_h]`` to the H |
| | channel in HSL color |
| | space. |
+----------------------------------------+------------------------------------------------------------+
| ``random.s`` | int, optional, default='0'. |
| | |
| | Add a random value in ``[-random_s, random_s]`` to the S |
| | channel in HSL color |
| | space. |
+----------------------------------------+------------------------------------------------------------+
| ``random.l`` | int, optional, default='0'. |
| | |
| | Add a random value in ``[-random_l, random_l]`` to the L |
| | channel in HSL color |
| | space. |
+----------------------------------------+------------------------------------------------------------+
| ``rotate`` | int, optional, default='-1'. |
| | |
| | Rotate by an angle. If set, it overwrites the |
| | ``max_rotate_angle`` |
| | option. |
+----------------------------------------+------------------------------------------------------------+
| ``fill.value`` | int, optional, default='255'. |
| | |
| | Set the padding pixels value to ``fill_value``. |
+----------------------------------------+------------------------------------------------------------+
| ``data.shape`` | Shape(tuple), required. |
| | |
| | The shape of a output image. |
+----------------------------------------+------------------------------------------------------------+
| ``inter.method`` | int, optional, default='1'. |
| | |
| | The interpolation method: 0-NN 1-bilinear 2-cubic 3-area |
| | 4-lanczos4 9-auto |
| | 10-rand. |
+----------------------------------------+------------------------------------------------------------+
| ``pad`` | int, optional, default='0'. |
| | |
| | Change size from ``[width, height]`` into ``[pad + width + |
| | pad, pad + height + pad]`` by padding |
| | pixes |
+----------------------------------------+------------------------------------------------------------+
| ``mirror`` | boolean, optional, default=0. |
| | |
| | Whether to mirror the image or not. If true, images are |
| | flipped along the horizontal |
| | axis. |
+----------------------------------------+------------------------------------------------------------+
| ``rand.mirror`` | boolean, optional, default=0. |
| | |
| | Whether to randomly mirror images or not. If true, 50% of |
| | the images will be randomly mirrored (flipped along the |
| | horizontal |
| | axis) |
+----------------------------------------+------------------------------------------------------------+
| ``mean.img`` | string, optional, default=''. |
| | |
| | Filename of the mean image. |
+----------------------------------------+------------------------------------------------------------+
| ``mean.r`` | float, optional, default=0. |
| | |
| | The mean value to be subtracted on the R channel |
+----------------------------------------+------------------------------------------------------------+
| ``mean.g`` | float, optional, default=0. |
| | |
| | The mean value to be subtracted on the G channel |
+----------------------------------------+------------------------------------------------------------+
| ``mean.b`` | float, optional, default=0. |
| | |
| | The mean value to be subtracted on the B channel |
+----------------------------------------+------------------------------------------------------------+
| ``mean.a`` | float, optional, default=0. |
| | |
| | The mean value to be subtracted on the alpha channel |
+----------------------------------------+------------------------------------------------------------+
| ``std.r`` | float, optional, default=1. |
| | |
| | Augmentation Param: Standard deviation on R channel. |
+----------------------------------------+------------------------------------------------------------+
| ``std.g`` | float, optional, default=1. |
| | |
| | Augmentation Param: Standard deviation on G channel. |
+----------------------------------------+------------------------------------------------------------+
| ``std.b`` | float, optional, default=1. |
| | |
| | Augmentation Param: Standard deviation on B channel. |
+----------------------------------------+------------------------------------------------------------+
| ``std.a`` | float, optional, default=1. |
| | |
| | Augmentation Param: Standard deviation on Alpha channel. |
+----------------------------------------+------------------------------------------------------------+
| ``scale`` | float, optional, default=1. |
| | |
| | Multiply the image with a scale value. |
+----------------------------------------+------------------------------------------------------------+
| ``max.random.contrast`` | float, optional, default=0. |
| | |
| | Change the contrast with a value randomly chosen from |
| | ``[-max_random_contrast, |
| | max_random_contrast]`` |
+----------------------------------------+------------------------------------------------------------+
| ``max.random.illumination`` | float, optional, default=0. |
| | |
| | Change the illumination with a value randomly chosen from |
| | ``[-max_random_illumination, |
| | max_random_illumination]`` |
+----------------------------------------+------------------------------------------------------------+
Value
----------
``iter`` The result mx.dataiter
Link to Source Code: http://github.com/apache/incubator-mxnet/blob/1.6.0/src/io/iter_image_recordio_2.cc#L904