forked from mindspore-Ecosystem/mindspore
switch input columns and operation
change ImagefolderDV2 name change ds.transforms.vision to ds.vision change batch api to match map api more closely compose op changes test_pylint remove compose op from vision, move to transform module, refactor map and batch to use column_order
This commit is contained in:
parent
75045e3e2a
commit
3bac9d3713
|
@ -733,7 +733,7 @@ Status DEPipeline::ParseMapOp(const py::dict &args, std::shared_ptr<DatasetOp> *
|
|||
(void)map_builder.SetInColNames(in_col_names);
|
||||
} else if (key == "output_columns") {
|
||||
(void)map_builder.SetOutColNames(ToStringVector(value));
|
||||
} else if (key == "columns_order") {
|
||||
} else if (key == "column_order") {
|
||||
project_columns = ToStringVector(value);
|
||||
} else if (key == "num_parallel_workers") {
|
||||
num_workers = ToInt(value);
|
||||
|
|
|
@ -113,7 +113,7 @@ Status ImageFolderOp::PrescanMasterEntry(const std::string &filedir) {
|
|||
num_rows_ = image_label_pairs_.size();
|
||||
if (num_rows_ == 0) {
|
||||
RETURN_STATUS_UNEXPECTED(
|
||||
"There is no valid data matching the dataset API ImageFolderDatasetV2.Please check file path or dataset "
|
||||
"There is no valid data matching the dataset API ImageFolderDataset. Please check file path or dataset "
|
||||
"API validation first.");
|
||||
}
|
||||
// free memory of two queues used for pre-scan
|
||||
|
|
|
@ -111,7 +111,7 @@ constexpr char kWhitespaceTokenizerOp[] = "WhitespaceTokenizerOp";
|
|||
constexpr char kWordpieceTokenizerOp[] = "WordpieceTokenizerOp";
|
||||
constexpr char kRandomChoiceOp[] = "RandomChoiceOp";
|
||||
constexpr char kRandomApplyOp[] = "RandomApplyOp";
|
||||
constexpr char kComposeOp[] = "ComposeOp";
|
||||
constexpr char kComposeOp[] = "Compose";
|
||||
constexpr char kRandomSelectSubpolicyOp[] = "RandomSelectSubpolicyOp";
|
||||
constexpr char kSentencepieceTokenizerOp[] = "SentencepieceTokenizerOp";
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ can also create samplers with this module to sample data.
|
|||
"""
|
||||
|
||||
from .core import config
|
||||
from .engine.datasets import TFRecordDataset, ImageFolderDatasetV2, MnistDataset, MindDataset, NumpySlicesDataset, \
|
||||
from .engine.datasets import TFRecordDataset, ImageFolderDataset, MnistDataset, MindDataset, NumpySlicesDataset, \
|
||||
GeneratorDataset, ManifestDataset, Cifar10Dataset, Cifar100Dataset, VOCDataset, CocoDataset, CelebADataset, \
|
||||
TextFileDataset, CLUEDataset, CSVDataset, Schema, Shuffle, zip, RandomDataset, PaddedDataset
|
||||
from .engine.samplers import DistributedSampler, PKSampler, RandomSampler, SequentialSampler, SubsetRandomSampler, \
|
||||
|
@ -28,7 +28,7 @@ from .engine.cache_client import DatasetCache
|
|||
from .engine.serializer_deserializer import serialize, deserialize, show
|
||||
from .engine.graphdata import GraphData
|
||||
|
||||
__all__ = ["config", "ImageFolderDatasetV2", "MnistDataset", "PaddedDataset",
|
||||
__all__ = ["config", "ImageFolderDataset", "MnistDataset", "PaddedDataset",
|
||||
"MindDataset", "GeneratorDataset", "TFRecordDataset",
|
||||
"ManifestDataset", "Cifar10Dataset", "Cifar100Dataset", "CelebADataset", "NumpySlicesDataset", "VOCDataset",
|
||||
"CocoDataset", "TextFileDataset", "CLUEDataset", "CSVDataset", "Schema", "DistributedSampler", "PKSampler",
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
# Copyright 2020 Huawei Technologies Co., Ltd
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# ==============================================================================
|
||||
"""
|
||||
General py_transforms_utils functions.
|
||||
"""
|
||||
import numpy as np
|
||||
|
||||
|
||||
def is_numpy(img):
|
||||
"""
|
||||
Check if the input image is Numpy format.
|
||||
|
||||
Args:
|
||||
img: Image to be checked.
|
||||
|
||||
Returns:
|
||||
Bool, True if input is Numpy image.
|
||||
"""
|
||||
return isinstance(img, np.ndarray)
|
|
@ -28,7 +28,7 @@ from .serializer_deserializer import serialize, deserialize, show, compare
|
|||
from .samplers import *
|
||||
from ..core import config
|
||||
|
||||
__all__ = ["config", "zip", "ImageFolderDatasetV2", "MnistDataset",
|
||||
__all__ = ["config", "zip", "ImageFolderDataset", "MnistDataset",
|
||||
"MindDataset", "GeneratorDataset", "TFRecordDataset", "CLUEDataset", "CSVDataset",
|
||||
"ManifestDataset", "Cifar10Dataset", "Cifar100Dataset", "CelebADataset",
|
||||
"VOCDataset", "CocoDataset", "TextFileDataset", "Schema", "DistributedSampler",
|
||||
|
|
|
@ -41,7 +41,7 @@ from . import samplers
|
|||
from .iterators import DictIterator, TupleIterator, DummyIterator, SaveOp, Iterator
|
||||
from .validators import check_batch, check_shuffle, check_map, check_filter, check_repeat, check_skip, check_zip, \
|
||||
check_rename, check_numpyslicesdataset, check_device_send, \
|
||||
check_take, check_project, check_imagefolderdatasetv2, check_mnist_cifar_dataset, check_manifestdataset, \
|
||||
check_take, check_project, check_imagefolderdataset, check_mnist_cifar_dataset, check_manifestdataset, \
|
||||
check_tfrecorddataset, check_vocdataset, check_cocodataset, check_celebadataset, check_minddataset, \
|
||||
check_generatordataset, check_sync_wait, check_zip_dataset, check_add_column, check_textfiledataset, check_concat, \
|
||||
check_random_dataset, check_split, check_bucket_batch_by_length, check_cluedataset, check_save, check_csvdataset, \
|
||||
|
@ -81,8 +81,8 @@ def zip(datasets):
|
|||
>>>
|
||||
>>> dataset_dir1 = "path/to/imagefolder_directory1"
|
||||
>>> dataset_dir2 = "path/to/imagefolder_directory2"
|
||||
>>> ds1 = ds.ImageFolderDatasetV2(dataset_dir1, num_parallel_workers=8)
|
||||
>>> ds2 = ds.ImageFolderDatasetV2(dataset_dir2, num_parallel_workers=8)
|
||||
>>> ds1 = ds.ImageFolderDataset(dataset_dir1, num_parallel_workers=8)
|
||||
>>> ds2 = ds.ImageFolderDataset(dataset_dir2, num_parallel_workers=8)
|
||||
>>>
|
||||
>>> # creates a dataset which is the combination of ds1 and ds2
|
||||
>>> data = ds.zip((ds1, ds2))
|
||||
|
@ -246,7 +246,7 @@ class Dataset:
|
|||
|
||||
@check_batch
|
||||
def batch(self, batch_size, drop_remainder=False, num_parallel_workers=None, per_batch_map=None,
|
||||
input_columns=None, pad_info=None):
|
||||
input_columns=None, output_columns=None, column_order=None, pad_info=None):
|
||||
"""
|
||||
Combine batch_size number of consecutive rows into batches.
|
||||
|
||||
|
@ -272,6 +272,18 @@ class Dataset:
|
|||
The last parameter of the callable should always be a BatchInfo object.
|
||||
input_columns (list[str], optional): List of names of the input columns. The size of the list should
|
||||
match with signature of per_batch_map callable.
|
||||
output_columns (list[str], optional): [Not currently implmented] List of names assigned to the columns
|
||||
outputted by the last operation. This parameter is mandatory if len(input_columns) !=
|
||||
len(output_columns). The size of this list must match the number of output
|
||||
columns of the last operation. (default=None, output columns will have the same
|
||||
name as the input columns, i.e., the columns will be replaced).
|
||||
column_order (list[str], optional): [Not currently implmented] list of all the desired columns to
|
||||
propagate to the child node. This list must be a subset of all the columns in the dataset after
|
||||
all operations are applied. The order of the columns in each row propagated to the
|
||||
child node follow the order they appear in this list. The parameter is mandatory
|
||||
if the len(input_columns) != len(output_columns). (default=None, all columns
|
||||
will be propagated to the child node, the order of the columns will remain the
|
||||
same).
|
||||
pad_info (dict, optional): Whether to perform padding on selected columns. pad_info={"col1":([224,224],0)}
|
||||
would pad column with name "col1" to a tensor of size [224,224] and fill the missing with 0.
|
||||
|
||||
|
@ -286,7 +298,7 @@ class Dataset:
|
|||
>>> data = data.batch(100, True)
|
||||
"""
|
||||
return BatchDataset(self, batch_size, drop_remainder, num_parallel_workers, per_batch_map, input_columns,
|
||||
pad_info)
|
||||
output_columns, column_order, pad_info)
|
||||
|
||||
@check_sync_wait
|
||||
def sync_wait(self, condition_name, num_batch=1, callback=None):
|
||||
|
@ -367,7 +379,7 @@ class Dataset:
|
|||
>>> # declare a function which returns a Dataset object
|
||||
>>> def flat_map_func(x):
|
||||
>>> data_dir = text.to_str(x[0])
|
||||
>>> d = ds.ImageFolderDatasetV2(data_dir)
|
||||
>>> d = ds.ImageFolderDataset(data_dir)
|
||||
>>> return d
|
||||
>>> # data is a Dataset object
|
||||
>>> data = ds.TextFileDataset(DATA_FILE)
|
||||
|
@ -394,7 +406,7 @@ class Dataset:
|
|||
return dataset
|
||||
|
||||
@check_map
|
||||
def map(self, input_columns=None, operations=None, output_columns=None, columns_order=None,
|
||||
def map(self, operations=None, input_columns=None, output_columns=None, column_order=None,
|
||||
num_parallel_workers=None, python_multiprocessing=False, cache=None, callbacks=None):
|
||||
"""
|
||||
Apply each operation in operations to this dataset.
|
||||
|
@ -409,23 +421,23 @@ class Dataset:
|
|||
The columns outputted by the very last operation will be assigned names specified by
|
||||
output_columns.
|
||||
|
||||
Only the columns specified in columns_order will be propagated to the child node. These
|
||||
columns will be in the same order as specified in columns_order.
|
||||
Only the columns specified in column_order will be propagated to the child node. These
|
||||
columns will be in the same order as specified in column_order.
|
||||
|
||||
Args:
|
||||
operations (Union[list[TensorOp], list[functions]]): List of operations to be
|
||||
applied on the dataset. Operations are applied in the order they appear in this list.
|
||||
input_columns (list[str]): List of the names of the columns that will be passed to
|
||||
the first operation as input. The size of this list must match the number of
|
||||
input columns expected by the first operator. (default=None, the first
|
||||
operation will be passed however many columns that is required, starting from
|
||||
the first column).
|
||||
operations (Union[list[TensorOp], list[functions]]): List of operations to be
|
||||
applied on the dataset. Operations are applied in the order they appear in this list.
|
||||
output_columns (list[str], optional): List of names assigned to the columns outputted by
|
||||
the last operation. This parameter is mandatory if len(input_columns) !=
|
||||
len(output_columns). The size of this list must match the number of output
|
||||
columns of the last operation. (default=None, output columns will have the same
|
||||
name as the input columns, i.e., the columns will be replaced).
|
||||
columns_order (list[str], optional): list of all the desired columns to propagate to the
|
||||
column_order (list[str], optional): list of all the desired columns to propagate to the
|
||||
child node. This list must be a subset of all the columns in the dataset after
|
||||
all operations are applied. The order of the columns in each row propagated to the
|
||||
child node follow the order they appear in this list. The parameter is mandatory
|
||||
|
@ -446,7 +458,7 @@ class Dataset:
|
|||
|
||||
Examples:
|
||||
>>> import mindspore.dataset as ds
|
||||
>>> import mindspore.dataset.transforms.vision.c_transforms as c_transforms
|
||||
>>> import mindspore.dataset.vision.c_transforms as c_transforms
|
||||
>>>
|
||||
>>> # data is an instance of Dataset which has 2 columns, "image" and "label".
|
||||
>>> # ds_pyfunc is an instance of Dataset which has 3 columns, "col0", "col1", and "col2". Each column is
|
||||
|
@ -468,33 +480,33 @@ class Dataset:
|
|||
>>> input_columns = ["image"]
|
||||
>>>
|
||||
>>> # Applies decode_op on column "image". This column will be replaced by the outputed
|
||||
>>> # column of decode_op. Since columns_order is not provided, both columns "image"
|
||||
>>> # column of decode_op. Since column_order is not provided, both columns "image"
|
||||
>>> # and "label" will be propagated to the child node in their original order.
|
||||
>>> ds_decoded = data.map(input_columns, operations)
|
||||
>>> ds_decoded = data.map(operations, input_columns)
|
||||
>>>
|
||||
>>> # Rename column "image" to "decoded_image"
|
||||
>>> output_columns = ["decoded_image"]
|
||||
>>> ds_decoded = data.map(input_columns, operations, output_columns)
|
||||
>>> ds_decoded = data.map(operations, input_columns, output_columns)
|
||||
>>>
|
||||
>>> # Specify the order of the columns.
|
||||
>>> columns_order ["label", "image"]
|
||||
>>> ds_decoded = data.map(input_columns, operations, None, columns_order)
|
||||
>>> column_order ["label", "image"]
|
||||
>>> ds_decoded = data.map(operations, input_columns, None, column_order)
|
||||
>>>
|
||||
>>> # Rename column "image" to "decoded_image" and also specify the order of the columns.
|
||||
>>> columns_order ["label", "decoded_image"]
|
||||
>>> column_order ["label", "decoded_image"]
|
||||
>>> output_columns = ["decoded_image"]
|
||||
>>> ds_decoded = data.map(input_columns, operations, output_columns, columns_order)
|
||||
>>> ds_decoded = data.map(operations, input_columns, output_columns, column_order)
|
||||
>>>
|
||||
>>> # Rename column "image" to "decoded_image" and keep only this column.
|
||||
>>> columns_order ["decoded_image"]
|
||||
>>> column_order ["decoded_image"]
|
||||
>>> output_columns = ["decoded_image"]
|
||||
>>> ds_decoded = data.map(input_columns, operations, output_columns, columns_order)
|
||||
>>> ds_decoded = data.map(operations, input_columns, output_columns, column_order)
|
||||
>>>
|
||||
>>> # Simple example using pyfunc. Renaming columns and specifying column order
|
||||
>>> # work in the same way as the previous examples.
|
||||
>>> input_columns = ["col0"]
|
||||
>>> operations = [(lambda x: x + 1)]
|
||||
>>> ds_mapped = ds_pyfunc.map(input_columns, operations)
|
||||
>>> ds_mapped = ds_pyfunc.map(operations, input_columns)
|
||||
>>>
|
||||
>>> # 2) Map example with more than one operation
|
||||
>>>
|
||||
|
@ -509,22 +521,22 @@ class Dataset:
|
|||
>>> # outputted by decode_op is passed as input to random_jitter_op.
|
||||
>>> # random_jitter_op will output one column. Column "image" will be replaced by
|
||||
>>> # the column outputted by random_jitter_op (the very last operation). All other
|
||||
>>> # columns are unchanged. Since columns_order is not specified, the order of the
|
||||
>>> # columns are unchanged. Since column_order is not specified, the order of the
|
||||
>>> # columns will remain the same.
|
||||
>>> ds_mapped = data.map(input_columns, operations)
|
||||
>>> ds_mapped = data.map(operations, input_columns)
|
||||
>>>
|
||||
>>> # Creates a dataset that is identical to ds_mapped, except the column "image"
|
||||
>>> # that is outputted by random_jitter_op is renamed to "image_transformed".
|
||||
>>> # Specifying column order works in the same way as examples in 1).
|
||||
>>> output_columns = ["image_transformed"]
|
||||
>>> ds_mapped_and_renamed = data.map(input_columns, operation, output_columns)
|
||||
>>> ds_mapped_and_renamed = data.map(operation, input_columns, output_columns)
|
||||
>>>
|
||||
>>> # Multiple operations using pyfunc. Renaming columns and specifying column order
|
||||
>>> # work in the same way as examples in 1).
|
||||
>>> input_columns = ["col0"]
|
||||
>>> operations = [(lambda x: x + x), (lambda x: x - 1)]
|
||||
>>> output_columns = ["col0_mapped"]
|
||||
>>> ds_mapped = ds_pyfunc.map(input_columns, operations, output_columns)
|
||||
>>> ds_mapped = ds_pyfunc.map(operations, input_columns, output_columns)
|
||||
>>>
|
||||
>>> # 3) Example where number of input columns is not equal to number of output columns
|
||||
>>>
|
||||
|
@ -540,20 +552,21 @@ class Dataset:
|
|||
>>> (lambda x: (x % 2, x % 3, x % 5, x % 7))]
|
||||
>>>
|
||||
>>> # Note: because the number of input columns is not the same as the number of
|
||||
>>> # output columns, the output_columns and columns_order parameter must be
|
||||
>>> # output columns, the output_columns and column_order parameter must be
|
||||
>>> # specified. Otherwise, this map call will also result in an error.
|
||||
>>> input_columns = ["col2", "col0"]
|
||||
>>> output_columns = ["mod2", "mod3", "mod5", "mod7"]
|
||||
>>>
|
||||
>>> # Propagate all columns to the child node in this order:
|
||||
>>> columns_order = ["col0", "col2", "mod2", "mod3", "mod5", "mod7", "col1"]
|
||||
>>> ds_mapped = ds_pyfunc.map(input_columns, operations, output_columns, columns_order)
|
||||
>>> column_order = ["col0", "col2", "mod2", "mod3", "mod5", "mod7", "col1"]
|
||||
>>> ds_mapped = ds_pyfunc.map(operations, input_columns, output_columns, column_order)
|
||||
>>>
|
||||
>>> # Propagate some columns to the child node in this order:
|
||||
>>> columns_order = ["mod7", "mod3", "col1"]
|
||||
>>> ds_mapped = ds_pyfunc.map(input_columns, operations, output_columns, columns_order)
|
||||
>>> column_order = ["mod7", "mod3", "col1"]
|
||||
>>> ds_mapped = ds_pyfunc.map(operations, input_columns, output_columns, column_order)
|
||||
"""
|
||||
return MapDataset(self, input_columns, operations, output_columns, columns_order, num_parallel_workers,
|
||||
|
||||
return MapDataset(self, operations, input_columns, output_columns, column_order, num_parallel_workers,
|
||||
python_multiprocessing, cache, callbacks)
|
||||
|
||||
@check_filter
|
||||
|
@ -1012,7 +1025,7 @@ class Dataset:
|
|||
|
||||
def get_distribution(output_dataset):
|
||||
dev_id = 0
|
||||
if isinstance(output_dataset, (Cifar10Dataset, Cifar100Dataset, GeneratorDataset, ImageFolderDatasetV2,
|
||||
if isinstance(output_dataset, (Cifar10Dataset, Cifar100Dataset, GeneratorDataset, ImageFolderDataset,
|
||||
ManifestDataset, MnistDataset, VOCDataset, CocoDataset, CelebADataset,
|
||||
MindDataset)):
|
||||
sampler = output_dataset.sampler
|
||||
|
@ -1412,7 +1425,7 @@ class MappableDataset(SourceDataset):
|
|||
>>>
|
||||
>>> dataset_dir = "/path/to/imagefolder_directory"
|
||||
>>> # a SequentialSampler is created by default
|
||||
>>> data = ds.ImageFolderDatasetV2(dataset_dir)
|
||||
>>> data = ds.ImageFolderDataset(dataset_dir)
|
||||
>>>
|
||||
>>> # use a DistributedSampler instead of the SequentialSampler
|
||||
>>> new_sampler = ds.DistributedSampler(10, 2)
|
||||
|
@ -1501,7 +1514,7 @@ class MappableDataset(SourceDataset):
|
|||
>>> dataset_dir = "/path/to/imagefolder_directory"
|
||||
>>>
|
||||
>>> # many datasets have shuffle on by default, set shuffle to False if split will be called!
|
||||
>>> data = ds.ImageFolderDatasetV2(dataset_dir, shuffle=False)
|
||||
>>> data = ds.ImageFolderDataset(dataset_dir, shuffle=False)
|
||||
>>>
|
||||
>>> # sets the seed, and tells split to use this seed when randomizing. This
|
||||
>>> # is needed because we are sharding later
|
||||
|
@ -1629,13 +1642,25 @@ class BatchDataset(DatasetOp):
|
|||
last parameter of the callable should always be a BatchInfo object.
|
||||
input_columns (list[str], optional): List of names of the input columns. The size of the list should
|
||||
match with signature of per_batch_map callable.
|
||||
output_columns (list[str], optional): List of names assigned to the columns outputted by
|
||||
the last operation. This parameter is mandatory if len(input_columns) !=
|
||||
len(output_columns). The size of this list must match the number of output
|
||||
columns of the last operation. (default=None, output columns will have the same
|
||||
name as the input columns, i.e., the columns will be replaced).
|
||||
column_order (list[str], optional): list of all the desired columns to propagate to the
|
||||
child node. This list must be a subset of all the columns in the dataset after
|
||||
all operations are applied. The order of the columns in each row propagated to the
|
||||
child node follow the order they appear in this list. The parameter is mandatory
|
||||
if the len(input_columns) != len(output_columns). (default=None, all columns
|
||||
will be propagated to the child node, the order of the columns will remain the
|
||||
same).
|
||||
pad_info (dict, optional): Whether to perform padding on selected columns. pad_info={"col1":([224,224],0)}
|
||||
would pad column with name "col1" to a tensor of size [224,224] and fill the missing with 0.
|
||||
|
||||
"""
|
||||
|
||||
def __init__(self, input_dataset, batch_size, drop_remainder=False, num_parallel_workers=None,
|
||||
per_batch_map=None, input_columns=None, pad_info=None):
|
||||
per_batch_map=None, input_columns=None, output_columns=None, column_order=None, pad_info=None):
|
||||
super().__init__(num_parallel_workers)
|
||||
|
||||
if BatchDataset._is_ancestor_of_repeat(input_dataset):
|
||||
|
@ -1647,6 +1672,8 @@ class BatchDataset(DatasetOp):
|
|||
self.drop_remainder = drop_remainder
|
||||
self.per_batch_map = per_batch_map
|
||||
self.input_columns = input_columns
|
||||
self.output_columns = output_columns
|
||||
self.column_order = column_order
|
||||
self.pad_info = pad_info
|
||||
self.children.append(input_dataset)
|
||||
input_dataset.parent.append(self)
|
||||
|
@ -1962,16 +1989,16 @@ class MapDataset(DatasetOp):
|
|||
|
||||
Args:
|
||||
input_dataset (Dataset): Input Dataset to be mapped.
|
||||
operations (TensorOp): A function mapping a nested structure of tensors
|
||||
to another nested structure of tensor (default=None).
|
||||
input_columns (list[str]): List of names of the input columns
|
||||
(default=None, the operations will be applied on the first columns in the dataset).
|
||||
The size of the list should match the number of inputs of the first operator.
|
||||
operations (TensorOp): A function mapping a nested structure of tensors
|
||||
to another nested structure of tensor (default=None).
|
||||
output_columns (list[str], optional): list of names of the output columns.
|
||||
The size of the list should match the number of outputs of the last operator
|
||||
(default=None, output columns will be the input columns, i.e., the columns will
|
||||
be replaced).
|
||||
columns_order (list[str], optional): list of all the desired columns of the dataset (default=None).
|
||||
column_order (list[str], optional): list of all the desired columns of the dataset (default=None).
|
||||
The argument is mandatory if len(input_columns) != len(output_columns).
|
||||
num_parallel_workers (int, optional): Number of workers to process the Dataset
|
||||
in parallel (default=None).
|
||||
|
@ -1982,29 +2009,29 @@ class MapDataset(DatasetOp):
|
|||
callbacks: (DSCallback, list[DSCallback], optional): list of Dataset callbacks to be called (Default=None)
|
||||
|
||||
Raises:
|
||||
ValueError: If len(input_columns) != len(output_columns) and columns_order is not specified.
|
||||
ValueError: If len(input_columns) != len(output_columns) and column_order is not specified.
|
||||
"""
|
||||
|
||||
def __init__(self, input_dataset, input_columns=None, operations=None, output_columns=None, columns_order=None,
|
||||
def __init__(self, input_dataset, operations=None, input_columns=None, output_columns=None, column_order=None,
|
||||
num_parallel_workers=None, python_multiprocessing=False, cache=None, callbacks=None):
|
||||
super().__init__(num_parallel_workers)
|
||||
self.children.append(input_dataset)
|
||||
if input_columns is not None and not isinstance(input_columns, list):
|
||||
input_columns = [input_columns]
|
||||
self.input_columns = input_columns
|
||||
if operations is not None and not isinstance(operations, list):
|
||||
operations = [operations]
|
||||
self.operations = operations
|
||||
if input_columns is not None and not isinstance(input_columns, list):
|
||||
input_columns = [input_columns]
|
||||
self.input_columns = input_columns
|
||||
if output_columns is not None and not isinstance(output_columns, list):
|
||||
output_columns = [output_columns]
|
||||
self.output_columns = output_columns
|
||||
self.cache = cache
|
||||
self.columns_order = columns_order
|
||||
self.column_order = column_order
|
||||
|
||||
if self.input_columns and self.output_columns \
|
||||
and len(self.input_columns) != len(self.output_columns) \
|
||||
and self.columns_order is None:
|
||||
raise ValueError("When (len(input_columns) != len(output_columns)), columns_order must be specified.")
|
||||
and self.column_order is None:
|
||||
raise ValueError("When (len(input_columns) != len(output_columns)), column_order must be specified.")
|
||||
|
||||
input_dataset.parent.append(self)
|
||||
self._input_indexs = input_dataset.input_indexs
|
||||
|
@ -2021,7 +2048,7 @@ class MapDataset(DatasetOp):
|
|||
args["input_columns"] = self.input_columns
|
||||
args["operations"] = self.operations
|
||||
args["output_columns"] = self.output_columns
|
||||
args["columns_order"] = self.columns_order
|
||||
args["column_order"] = self.column_order
|
||||
args["cache"] = self.cache.cache_client if self.cache is not None else None
|
||||
|
||||
if self.callbacks is not None:
|
||||
|
@ -2048,7 +2075,7 @@ class MapDataset(DatasetOp):
|
|||
new_op.children = copy.deepcopy(self.children, memodict)
|
||||
new_op.input_columns = copy.deepcopy(self.input_columns, memodict)
|
||||
new_op.output_columns = copy.deepcopy(self.output_columns, memodict)
|
||||
new_op.columns_order = copy.deepcopy(self.columns_order, memodict)
|
||||
new_op.column_order = copy.deepcopy(self.column_order, memodict)
|
||||
new_op.num_parallel_workers = copy.deepcopy(self.num_parallel_workers, memodict)
|
||||
new_op.parent = copy.deepcopy(self.parent, memodict)
|
||||
new_op.ms_role = copy.deepcopy(self.ms_role, memodict)
|
||||
|
@ -2646,7 +2673,7 @@ def _select_sampler(num_samples, input_sampler, shuffle, num_shards, shard_id, n
|
|||
return samplers.SequentialSampler(num_samples=num_samples)
|
||||
|
||||
|
||||
class ImageFolderDatasetV2(MappableDataset):
|
||||
class ImageFolderDataset(MappableDataset):
|
||||
"""
|
||||
A source dataset that reads images from a tree of directories.
|
||||
|
||||
|
@ -2722,14 +2749,14 @@ class ImageFolderDatasetV2(MappableDataset):
|
|||
>>> # path to imagefolder directory. This directory needs to contain sub-directories which contain the images
|
||||
>>> dataset_dir = "/path/to/imagefolder_directory"
|
||||
>>> # 1) read all samples (image files) in dataset_dir with 8 threads
|
||||
>>> imagefolder_dataset = ds.ImageFolderDatasetV2(dataset_dir, num_parallel_workers=8)
|
||||
>>> imagefolder_dataset = ds.ImageFolderDataset(dataset_dir, num_parallel_workers=8)
|
||||
>>> # 2) read all samples (image files) from folder cat and folder dog with label 0 and 1
|
||||
>>> imagefolder_dataset = ds.ImageFolderDatasetV2(dataset_dir,class_indexing={"cat":0,"dog":1})
|
||||
>>> imagefolder_dataset = ds.ImageFolderDataset(dataset_dir,class_indexing={"cat":0,"dog":1})
|
||||
>>> # 3) read all samples (image files) in dataset_dir with extensions .JPEG and .png (case sensitive)
|
||||
>>> imagefolder_dataset = ds.ImageFolderDatasetV2(dataset_dir, extensions=[".JPEG",".png"])
|
||||
>>> imagefolder_dataset = ds.ImageFolderDataset(dataset_dir, extensions=[".JPEG",".png"])
|
||||
"""
|
||||
|
||||
@check_imagefolderdatasetv2
|
||||
@check_imagefolderdataset
|
||||
def __init__(self, dataset_dir, num_samples=None, num_parallel_workers=None,
|
||||
shuffle=None, sampler=None, extensions=None, class_indexing=None,
|
||||
decode=False, num_shards=None, shard_id=None, cache=None):
|
||||
|
@ -3168,6 +3195,7 @@ class SamplerFn:
|
|||
"""
|
||||
Multiprocessing or multithread generator function wrapper master process.
|
||||
"""
|
||||
|
||||
def __init__(self, dataset, num_worker, multi_process):
|
||||
self.workers = []
|
||||
self.num_worker = num_worker
|
||||
|
|
|
@ -150,7 +150,7 @@ class Iterator:
|
|||
op_type = OpName.SKIP
|
||||
elif isinstance(dataset, de.TakeDataset):
|
||||
op_type = OpName.TAKE
|
||||
elif isinstance(dataset, de.ImageFolderDatasetV2):
|
||||
elif isinstance(dataset, de.ImageFolderDataset):
|
||||
op_type = OpName.IMAGEFOLDER
|
||||
elif isinstance(dataset, de.GeneratorDataset):
|
||||
op_type = OpName.GENERATOR
|
||||
|
|
|
@ -41,7 +41,7 @@ class Sampler:
|
|||
>>> for i in range(self.dataset_size - 1, -1, -1):
|
||||
>>> yield i
|
||||
>>>
|
||||
>>> ds = ds.ImageFolderDatasetV2(path, sampler=ReverseSampler())
|
||||
>>> ds = ds.ImageFolderDataset(path, sampler=ReverseSampler())
|
||||
"""
|
||||
|
||||
def __init__(self, num_samples=None):
|
||||
|
@ -232,7 +232,7 @@ class DistributedSampler(BuiltinSampler):
|
|||
>>>
|
||||
>>> # creates a distributed sampler with 10 shards total. This shard is shard 5
|
||||
>>> sampler = ds.DistributedSampler(10, 5)
|
||||
>>> data = ds.ImageFolderDatasetV2(dataset_dir, num_parallel_workers=8, sampler=sampler)
|
||||
>>> data = ds.ImageFolderDataset(dataset_dir, num_parallel_workers=8, sampler=sampler)
|
||||
|
||||
Raises:
|
||||
ValueError: If num_shards is not positive.
|
||||
|
@ -315,7 +315,7 @@ class PKSampler(BuiltinSampler):
|
|||
>>>
|
||||
>>> # creates a PKSampler that will get 3 samples from every class.
|
||||
>>> sampler = ds.PKSampler(3)
|
||||
>>> data = ds.ImageFolderDatasetV2(dataset_dir, num_parallel_workers=8, sampler=sampler)
|
||||
>>> data = ds.ImageFolderDataset(dataset_dir, num_parallel_workers=8, sampler=sampler)
|
||||
|
||||
Raises:
|
||||
ValueError: If num_val is not positive.
|
||||
|
@ -387,7 +387,7 @@ class RandomSampler(BuiltinSampler):
|
|||
>>>
|
||||
>>> # creates a RandomSampler
|
||||
>>> sampler = ds.RandomSampler()
|
||||
>>> data = ds.ImageFolderDatasetV2(dataset_dir, num_parallel_workers=8, sampler=sampler)
|
||||
>>> data = ds.ImageFolderDataset(dataset_dir, num_parallel_workers=8, sampler=sampler)
|
||||
|
||||
Raises:
|
||||
ValueError: If replacement is not boolean.
|
||||
|
@ -447,7 +447,7 @@ class SequentialSampler(BuiltinSampler):
|
|||
>>>
|
||||
>>> # creates a SequentialSampler
|
||||
>>> sampler = ds.SequentialSampler()
|
||||
>>> data = ds.ImageFolderDatasetV2(dataset_dir, num_parallel_workers=8, sampler=sampler)
|
||||
>>> data = ds.ImageFolderDataset(dataset_dir, num_parallel_workers=8, sampler=sampler)
|
||||
"""
|
||||
|
||||
def __init__(self, start_index=None, num_samples=None):
|
||||
|
@ -510,7 +510,7 @@ class SubsetRandomSampler(BuiltinSampler):
|
|||
>>>
|
||||
>>> # creates a SubsetRandomSampler, will sample from the provided indices
|
||||
>>> sampler = ds.SubsetRandomSampler()
|
||||
>>> data = ds.ImageFolderDatasetV2(dataset_dir, num_parallel_workers=8, sampler=sampler)
|
||||
>>> data = ds.ImageFolderDataset(dataset_dir, num_parallel_workers=8, sampler=sampler)
|
||||
"""
|
||||
|
||||
def __init__(self, indices, num_samples=None):
|
||||
|
@ -573,7 +573,7 @@ class WeightedRandomSampler(BuiltinSampler):
|
|||
>>>
|
||||
>>> # creates a WeightedRandomSampler that will sample 4 elements without replacement
|
||||
>>> sampler = ds.WeightedRandomSampler(weights, 4)
|
||||
>>> data = ds.ImageFolderDatasetV2(dataset_dir, num_parallel_workers=8, sampler=sampler)
|
||||
>>> data = ds.ImageFolderDataset(dataset_dir, num_parallel_workers=8, sampler=sampler)
|
||||
|
||||
Raises:
|
||||
ValueError: If num_samples is not positive.
|
||||
|
|
|
@ -21,9 +21,10 @@ import sys
|
|||
|
||||
from mindspore import log as logger
|
||||
from . import datasets as de
|
||||
from ..transforms.vision.utils import Inter, Border
|
||||
from ..vision.utils import Inter, Border
|
||||
from ..core import config
|
||||
|
||||
|
||||
def serialize(dataset, json_filepath=None):
|
||||
"""
|
||||
Serialize dataset pipeline into a json file.
|
||||
|
@ -44,7 +45,7 @@ def serialize(dataset, json_filepath=None):
|
|||
>>> DATA_DIR = "../../data/testMnistData"
|
||||
>>> data = ds.MnistDataset(DATA_DIR, 100)
|
||||
>>> one_hot_encode = C.OneHot(10) # num_classes is input argument
|
||||
>>> data = data.map(input_column_names="label", operation=one_hot_encode)
|
||||
>>> data = data.map(operation=one_hot_encode, input_column_names="label")
|
||||
>>> data = data.batch(batch_size=10, drop_remainder=True)
|
||||
>>>
|
||||
>>> ds.engine.serialize(data, json_filepath="mnist_dataset_pipeline.json") # serialize it to json file
|
||||
|
@ -77,7 +78,7 @@ def deserialize(input_dict=None, json_filepath=None):
|
|||
>>> DATA_DIR = "../../data/testMnistData"
|
||||
>>> data = ds.MnistDataset(DATA_DIR, 100)
|
||||
>>> one_hot_encode = C.OneHot(10) # num_classes is input argument
|
||||
>>> data = data.map(input_column_names="label", operation=one_hot_encode)
|
||||
>>> data = data.map(operation=one_hot_encode, input_column_names="label")
|
||||
>>> data = data.batch(batch_size=10, drop_remainder=True)
|
||||
>>>
|
||||
>>> # Use case 1: to/from json file
|
||||
|
@ -254,7 +255,7 @@ def create_node(node):
|
|||
pyobj = None
|
||||
# Find a matching Dataset class and call the constructor with the corresponding args.
|
||||
# When a new Dataset class is introduced, another if clause and parsing code needs to be added.
|
||||
if dataset_op == 'ImageFolderDatasetV2':
|
||||
if dataset_op == 'ImageFolderDataset':
|
||||
sampler = construct_sampler(node.get('sampler'))
|
||||
pyobj = pyclass(node['dataset_dir'], node.get('num_samples'), node.get('num_parallel_workers'),
|
||||
node.get('shuffle'), sampler, node.get('extensions'),
|
||||
|
@ -336,8 +337,8 @@ def create_node(node):
|
|||
|
||||
elif dataset_op == 'MapDataset':
|
||||
tensor_ops = construct_tensor_ops(node.get('operations'))
|
||||
pyobj = de.Dataset().map(node.get('input_columns'), tensor_ops, node.get('output_columns'),
|
||||
node.get('columns_order'), node.get('num_parallel_workers'))
|
||||
pyobj = de.Dataset().map(tensor_ops, node.get('input_columns'), node.get('output_columns'),
|
||||
node.get('column_order'), node.get('num_parallel_workers'))
|
||||
|
||||
elif dataset_op == 'ShuffleDataset':
|
||||
pyobj = de.Dataset().shuffle(node.get('buffer_size'))
|
||||
|
|
|
@ -35,8 +35,8 @@ from . import cache_client
|
|||
from .. import callback
|
||||
|
||||
|
||||
def check_imagefolderdatasetv2(method):
|
||||
"""A wrapper that wraps a parameter checker around the original Dataset(ImageFolderDatasetV2)."""
|
||||
def check_imagefolderdataset(method):
|
||||
"""A wrapper that wraps a parameter checker around the original Dataset(ImageFolderDataset)."""
|
||||
|
||||
@wraps(method)
|
||||
def new_method(self, *args, **kwargs):
|
||||
|
@ -474,8 +474,8 @@ def check_batch(method):
|
|||
|
||||
@wraps(method)
|
||||
def new_method(self, *args, **kwargs):
|
||||
[batch_size, drop_remainder, num_parallel_workers, per_batch_map,
|
||||
input_columns, pad_info], param_dict = parse_user_args(method, *args, **kwargs)
|
||||
[batch_size, drop_remainder, num_parallel_workers, per_batch_map, input_columns, output_columns,
|
||||
column_order, pad_info], param_dict = parse_user_args(method, *args, **kwargs)
|
||||
|
||||
if not (isinstance(batch_size, int) or (callable(batch_size))):
|
||||
raise TypeError("batch_size should either be an int or a callable.")
|
||||
|
@ -510,6 +510,12 @@ def check_batch(method):
|
|||
if len(input_columns) != (len(ins.signature(per_batch_map).parameters) - 1):
|
||||
raise ValueError("the signature of per_batch_map should match with input columns")
|
||||
|
||||
if output_columns is not None:
|
||||
raise ValueError("output_columns is currently not implemented.")
|
||||
|
||||
if column_order is not None:
|
||||
raise ValueError("column_order is currently not implemented.")
|
||||
|
||||
return method(self, *args, **kwargs)
|
||||
|
||||
return new_method
|
||||
|
@ -551,14 +557,14 @@ def check_map(method):
|
|||
|
||||
@wraps(method)
|
||||
def new_method(self, *args, **kwargs):
|
||||
[input_columns, _, output_columns, columns_order, num_parallel_workers, python_multiprocessing, cache,
|
||||
[_, input_columns, output_columns, column_order, num_parallel_workers, python_multiprocessing, cache,
|
||||
callbacks], _ = \
|
||||
parse_user_args(method, *args, **kwargs)
|
||||
|
||||
nreq_param_columns = ['input_columns', 'output_columns', 'columns_order']
|
||||
nreq_param_columns = ['input_columns', 'output_columns', 'column_order']
|
||||
|
||||
if columns_order is not None:
|
||||
type_check(columns_order, (list,), "columns_order")
|
||||
if column_order is not None:
|
||||
type_check(column_order, (list,), "column_order")
|
||||
if num_parallel_workers is not None:
|
||||
check_num_parallel_workers(num_parallel_workers)
|
||||
type_check(python_multiprocessing, (bool,), "python_multiprocessing")
|
||||
|
@ -571,7 +577,7 @@ def check_map(method):
|
|||
else:
|
||||
type_check(callbacks, (callback.DSCallback,), "callbacks")
|
||||
|
||||
for param_name, param in zip(nreq_param_columns, [input_columns, output_columns, columns_order]):
|
||||
for param_name, param in zip(nreq_param_columns, [input_columns, output_columns, column_order]):
|
||||
if param is not None:
|
||||
check_columns(param, param_name)
|
||||
if callbacks is not None:
|
||||
|
|
|
@ -103,7 +103,6 @@ class SlidingWindow(cde.SlidingWindowOp):
|
|||
super().__init__(width, axis)
|
||||
|
||||
|
||||
|
||||
class Ngram(cde.NgramOp):
|
||||
"""
|
||||
TensorOp to generate n-gram from a 1-D string Tensor.
|
||||
|
@ -161,8 +160,9 @@ class JiebaTokenizer(cde.JiebaTokenizerOp):
|
|||
>>> # If with_offsets=False, then output three columns {["token", dtype=str], ["offsets_start", dtype=uint32],
|
||||
>>> # ["offsets_limit", dtype=uint32]}
|
||||
>>> tokenizer_op = JiebaTokenizer(HMM_FILE, MP_FILE, mode=JiebaMode.MP, with_offsets=True)
|
||||
>>> data = data.map(input_columns=["text"], output_columns=["token", "offsets_start", "offsets_limit"],
|
||||
>>> columns_order=["token", "offsets_start", "offsets_limit"], operations=tokenizer_op)
|
||||
>>> data = data.map(operations=tokenizer_op, input_columns=["text"],
|
||||
>>> output_columns=["token", "offsets_start", "offsets_limit"],
|
||||
>>> column_order=["token", "offsets_start", "offsets_limit"])
|
||||
"""
|
||||
|
||||
@check_jieba_init
|
||||
|
@ -281,7 +281,7 @@ class UnicodeCharTokenizer(cde.UnicodeCharTokenizerOp):
|
|||
>>> # ["offsets_limit", dtype=uint32]}
|
||||
>>> tokenizer_op = text.UnicodeCharTokenizer(True)
|
||||
>>> data = data.map(input_columns=["text"], output_columns=["token", "offsets_start", "offsets_limit"],
|
||||
>>> columns_order=["token", "offsets_start", "offsets_limit"], operations=tokenizer_op)
|
||||
>>> column_order=["token", "offsets_start", "offsets_limit"], operations=tokenizer_op)
|
||||
"""
|
||||
|
||||
@check_with_offsets
|
||||
|
@ -312,7 +312,7 @@ class WordpieceTokenizer(cde.WordpieceTokenizerOp):
|
|||
>>> tokenizer_op = text.WordpieceTokenizer(vocab=vocab, unknown_token=['UNK'],
|
||||
>>> max_bytes_per_token=100, with_offsets=True)
|
||||
>>> data = data.map(input_columns=["text"], output_columns=["token", "offsets_start", "offsets_limit"],
|
||||
>>> columns_order=["token", "offsets_start", "offsets_limit"], operations=tokenizer_op)
|
||||
>>> column_order=["token", "offsets_start", "offsets_limit"], operations=tokenizer_op)
|
||||
"""
|
||||
|
||||
@check_wordpiece_tokenizer
|
||||
|
@ -377,7 +377,7 @@ if platform.system().lower() != 'windows':
|
|||
>>> # ["offsets_limit", dtype=uint32]}
|
||||
>>> tokenizer_op = text.WhitespaceTokenizer(True)
|
||||
>>> data = data.map(input_columns=["text"], output_columns=["token", "offsets_start", "offsets_limit"],
|
||||
>>> columns_order=["token", "offsets_start", "offsets_limit"], operations=tokenizer_op)
|
||||
>>> column_order=["token", "offsets_start", "offsets_limit"], operations=tokenizer_op)
|
||||
"""
|
||||
|
||||
@check_with_offsets
|
||||
|
@ -403,7 +403,7 @@ if platform.system().lower() != 'windows':
|
|||
>>> # ["offsets_limit", dtype=uint32]}
|
||||
>>> tokenizer_op = text.UnicodeScriptTokenizerOp(keep_whitespace=True, with_offsets=True)
|
||||
>>> data = data.map(input_columns=["text"], output_columns=["token", "offsets_start", "offsets_limit"],
|
||||
>>> columns_order=["token", "offsets_start", "offsets_limit"], operations=tokenizer_op)
|
||||
>>> column_order=["token", "offsets_start", "offsets_limit"], operations=tokenizer_op)
|
||||
"""
|
||||
|
||||
@check_unicode_script_tokenizer
|
||||
|
@ -496,7 +496,7 @@ if platform.system().lower() != 'windows':
|
|||
>>> # ["offsets_limit", dtype=uint32]}
|
||||
>>> tokenizer_op = text.RegexTokenizer(delim_pattern, keep_delim_pattern, with_offsets=True)
|
||||
>>> data = data.map(input_columns=["text"], output_columns=["token", "offsets_start", "offsets_limit"],
|
||||
>>> columns_order=["token", "offsets_start", "offsets_limit"], operations=tokenizer_op)
|
||||
>>> column_order=["token", "offsets_start", "offsets_limit"], operations=tokenizer_op)
|
||||
"""
|
||||
|
||||
@check_regex_tokenizer
|
||||
|
@ -539,7 +539,7 @@ if platform.system().lower() != 'windows':
|
|||
>>> preserve_unused_token=True,
|
||||
>>> with_offsets=True)
|
||||
>>> data = data.map(input_columns=["text"], output_columns=["token", "offsets_start", "offsets_limit"],
|
||||
>>> columns_order=["token", "offsets_start", "offsets_limit"], operations=tokenizer_op)
|
||||
>>> column_order=["token", "offsets_start", "offsets_limit"], operations=tokenizer_op)
|
||||
"""
|
||||
|
||||
@check_basic_tokenizer
|
||||
|
@ -592,7 +592,7 @@ if platform.system().lower() != 'windows':
|
|||
>>> normalization_form=NormalizeForm.NONE, preserve_unused_token=True,
|
||||
>>> with_offsets=True)
|
||||
>>> data = data.map(input_columns=["text"], output_columns=["token", "offsets_start", "offsets_limit"],
|
||||
>>> columns_order=["token", "offsets_start", "offsets_limit"], operations=tokenizer_op)
|
||||
>>> column_order=["token", "offsets_start", "offsets_limit"], operations=tokenizer_op)
|
||||
"""
|
||||
|
||||
@check_bert_tokenizer
|
||||
|
|
|
@ -16,6 +16,6 @@ This module is to support common augmentations. C_transforms is a high performan
|
|||
image augmentation module which is developed with C++ OpenCV. Py_transforms
|
||||
provide more kinds of image augmentations which is developed with Python PIL.
|
||||
"""
|
||||
from . import vision
|
||||
from .. import vision
|
||||
from . import c_transforms
|
||||
from . import py_transforms
|
||||
|
|
|
@ -229,8 +229,8 @@ class Duplicate(cde.DuplicateOp):
|
|||
>>> # +---------+
|
||||
>>> # | [1,2,3] |
|
||||
>>> # +---------+
|
||||
>>> data = data.map(input_columns=["x"], operations=Duplicate(),
|
||||
>>> output_columns=["x", "y"], columns_order=["x", "y"])
|
||||
>>> data = data.map(operations=Duplicate(), input_columns=["x"],
|
||||
>>> output_columns=["x", "y"], column_order=["x", "y"])
|
||||
>>> # Data after
|
||||
>>> # | x | y |
|
||||
>>> # +---------+---------+
|
||||
|
|
|
@ -17,9 +17,8 @@
|
|||
This module py_transforms is implemented basing on Python. It provides common
|
||||
operations including OneHotOp.
|
||||
"""
|
||||
|
||||
from .validators import check_one_hot_op
|
||||
from .vision import py_transforms_util as util
|
||||
from .validators import check_one_hot_op, check_compose_list
|
||||
from . import py_transforms_util as util
|
||||
|
||||
|
||||
class OneHotOp:
|
||||
|
@ -48,3 +47,48 @@ class OneHotOp:
|
|||
label (numpy.ndarray), label after being Smoothed.
|
||||
"""
|
||||
return util.one_hot_encoding(label, self.num_classes, self.smoothing_rate)
|
||||
|
||||
|
||||
class Compose:
|
||||
"""
|
||||
Compose a list of transforms.
|
||||
|
||||
.. Note::
|
||||
Compose takes a list of transformations either provided in py_transforms or from user-defined implementation;
|
||||
each can be an initialized transformation class or a lambda function, as long as the output from the last
|
||||
transformation is a single tensor of type numpy.ndarray. See below for an example of how to use Compose
|
||||
with py_transforms classes and check out FiveCrop or TenCrop for the use of them in conjunction with lambda
|
||||
functions.
|
||||
|
||||
Args:
|
||||
transforms (list): List of transformations to be applied.
|
||||
|
||||
Examples:
|
||||
>>> import mindspore.dataset as ds
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>> dataset_dir = "path/to/imagefolder_directory"
|
||||
>>> # create a dataset that reads all files in dataset_dir with 8 threads
|
||||
>>> dataset = ds.ImageFolderDataset(dataset_dir, num_parallel_workers=8)
|
||||
>>> # create a list of transformations to be applied to the image data
|
||||
>>> transform = Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomHorizontalFlip(0.5),
|
||||
>>> py_transforms.ToTensor(),
|
||||
>>> py_transforms.Normalize((0.491, 0.482, 0.447), (0.247, 0.243, 0.262)),
|
||||
>>> py_transforms.RandomErasing()])
|
||||
>>> # apply the transform to the dataset through dataset.map()
|
||||
>>> dataset = dataset.map(operations=transform, input_columns="image")
|
||||
"""
|
||||
|
||||
@check_compose_list
|
||||
def __init__(self, transforms):
|
||||
self.transforms = transforms
|
||||
|
||||
def __call__(self, img):
|
||||
"""
|
||||
Call method.
|
||||
|
||||
Returns:
|
||||
lambda function, Lambda function that takes in an img to apply transformations on.
|
||||
"""
|
||||
return util.compose(img, self.transforms)
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
# Copyright 2020 Huawei Technologies Co., Ltd
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# ==============================================================================
|
||||
"""
|
||||
Built-in py_transforms_utils functions.
|
||||
"""
|
||||
import numpy as np
|
||||
from ..core.py_util_helpers import is_numpy
|
||||
|
||||
|
||||
def compose(img, transforms):
|
||||
"""
|
||||
Compose a list of transforms and apply on the image.
|
||||
|
||||
Args:
|
||||
img (numpy.ndarray): An image in Numpy ndarray.
|
||||
transforms (list): A list of transform Class objects to be composed.
|
||||
|
||||
Returns:
|
||||
img (numpy.ndarray), An augmented image in Numpy ndarray.
|
||||
"""
|
||||
if is_numpy(img):
|
||||
for transform in transforms:
|
||||
img = transform(img)
|
||||
if is_numpy(img):
|
||||
return img
|
||||
raise TypeError('img should be Numpy ndarray. Got {}. Append ToTensor() to transforms'.format(type(img)))
|
||||
raise TypeError('img should be Numpy ndarray. Got {}.'.format(type(img)))
|
||||
|
||||
|
||||
def one_hot_encoding(label, num_classes, epsilon):
|
||||
"""
|
||||
Apply label smoothing transformation to the input label, and make label be more smoothing and continuous.
|
||||
|
||||
Args:
|
||||
label (numpy.ndarray): label to be applied label smoothing.
|
||||
num_classes (int): Num class of object in dataset, value should over 0.
|
||||
epsilon (float): The adjustable Hyper parameter. Default is 0.0.
|
||||
|
||||
Returns:
|
||||
img (numpy.ndarray), label after being one hot encoded and done label smoothed.
|
||||
"""
|
||||
if label > num_classes:
|
||||
raise ValueError('the num_classes is smaller than the category number.')
|
||||
|
||||
num_elements = label.size
|
||||
one_hot_label = np.zeros((num_elements, num_classes), dtype=int)
|
||||
|
||||
if isinstance(label, list) is False:
|
||||
label = [label]
|
||||
for index in range(num_elements):
|
||||
one_hot_label[index, label[index]] = 1
|
||||
|
||||
return (1 - epsilon) * one_hot_label + epsilon / num_classes
|
|
@ -200,3 +200,19 @@ def check_random_transform_ops(method):
|
|||
return method(self, *args, **kwargs)
|
||||
|
||||
return new_method
|
||||
|
||||
|
||||
def check_compose_list(method):
|
||||
"""Wrapper method to check the transform list of Compose."""
|
||||
|
||||
@wraps(method)
|
||||
def new_method(self, *args, **kwargs):
|
||||
[transforms], _ = parse_user_args(method, *args, **kwargs)
|
||||
|
||||
type_check(transforms, (list,), transforms)
|
||||
if not transforms:
|
||||
raise ValueError("transforms list is empty.")
|
||||
|
||||
return method(self, *args, **kwargs)
|
||||
|
||||
return new_method
|
||||
|
|
|
@ -25,11 +25,12 @@ to improve their training models.
|
|||
Examples:
|
||||
>>> import mindspore.dataset as ds
|
||||
>>> import mindspore.dataset.transforms.c_transforms as c_transforms
|
||||
>>> import mindspore.dataset.transforms.vision.c_transforms as c_vision
|
||||
>>> import mindspore.dataset.vision.c_transforms as c_vision
|
||||
>>> from mindspore.dataset.transforms.vision.utils import Border, ImageBatchFormat, Inter
|
||||
|
||||
>>> dataset_dir = "path/to/imagefolder_directory"
|
||||
>>> # create a dataset that reads all files in dataset_dir with 8 threads
|
||||
>>> data1 = ds.ImageFolderDatasetV2(dataset_dir, num_parallel_workers=8)
|
||||
>>> data1 = ds.ImageFolderDataset(dataset_dir, num_parallel_workers=8)
|
||||
>>> # create a list of transformations to be applied to the image data
|
||||
>>> transforms_list = [c_vision.Decode(),
|
||||
>>> c_vision.Resize((256, 256)),
|
||||
|
@ -1095,7 +1096,7 @@ class UniformAugment(cde.UniformAugOp):
|
|||
num_ops (int, optional): Number of operations to be selected and applied (default=2).
|
||||
|
||||
Examples:
|
||||
>>> import mindspore.dataset.transforms.vision.py_transforms as py_vision
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_vision
|
||||
>>> transforms_list = [c_vision.RandomHorizontalFlip(),
|
||||
>>> c_vision.RandomVerticalFlip(),
|
||||
>>> c_vision.RandomColorAdjust(),
|
|
@ -33,7 +33,7 @@ from .validators import check_prob, check_crop, check_resize_interpolation, chec
|
|||
check_normalize_py, check_random_crop, check_random_color_adjust, check_random_rotation, \
|
||||
check_transforms_list, check_random_apply, check_ten_crop, check_num_channels, check_pad, \
|
||||
check_random_perspective, check_random_erasing, check_cutout, check_linear_transform, check_random_affine, \
|
||||
check_mix_up, check_positive_degrees, check_uniform_augment_py, check_compose_list, check_auto_contrast
|
||||
check_mix_up, check_positive_degrees, check_uniform_augment_py, check_auto_contrast
|
||||
from .utils import Inter, Border
|
||||
|
||||
DE_PY_INTER_MODE = {Inter.NEAREST: Image.NEAREST,
|
||||
|
@ -46,50 +46,6 @@ DE_PY_BORDER_TYPE = {Border.CONSTANT: 'constant',
|
|||
Border.SYMMETRIC: 'symmetric'}
|
||||
|
||||
|
||||
class ComposeOp:
|
||||
"""
|
||||
Compose a list of transforms.
|
||||
|
||||
.. Note::
|
||||
ComposeOp takes a list of transformations either provided in py_transforms or from user-defined implementation;
|
||||
each can be an initialized transformation class or a lambda function, as long as the output from the last
|
||||
transformation is a single tensor of type numpy.ndarray. See below for an example of how to use ComposeOp
|
||||
with py_transforms classes and check out FiveCrop or TenCrop for the use of them in conjunction with lambda
|
||||
functions.
|
||||
|
||||
Args:
|
||||
transforms (list): List of transformations to be applied.
|
||||
|
||||
Examples:
|
||||
>>> import mindspore.dataset as ds
|
||||
>>> import mindspore.dataset.transforms.vision.py_transforms as py_transforms
|
||||
>>> dataset_dir = "path/to/imagefolder_directory"
|
||||
>>> # create a dataset that reads all files in dataset_dir with 8 threads
|
||||
>>> dataset = ds.ImageFolderDatasetV2(dataset_dir, num_parallel_workers=8)
|
||||
>>> # create a list of transformations to be applied to the image data
|
||||
>>> transform = py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomHorizontalFlip(0.5),
|
||||
>>> py_transforms.ToTensor(),
|
||||
>>> py_transforms.Normalize((0.491, 0.482, 0.447), (0.247, 0.243, 0.262)),
|
||||
>>> py_transforms.RandomErasing()])
|
||||
>>> # apply the transform to the dataset through dataset.map()
|
||||
>>> dataset = dataset.map(input_columns="image", operations=transform())
|
||||
"""
|
||||
|
||||
@check_compose_list
|
||||
def __init__(self, transforms):
|
||||
self.transforms = transforms
|
||||
|
||||
def __call__(self):
|
||||
"""
|
||||
Call method.
|
||||
|
||||
Returns:
|
||||
lambda function, Lambda function that takes in an image to apply transformations on.
|
||||
"""
|
||||
return lambda img: util.compose(img, self.transforms)
|
||||
|
||||
|
||||
class ToTensor:
|
||||
"""
|
||||
Convert the input NumPy image array or PIL image of shape (H,W,C) to a NumPy ndarray of shape (C,H,W).
|
||||
|
@ -103,9 +59,11 @@ class ToTensor:
|
|||
output_type (Numpy datatype, optional): The datatype of the NumPy output (default=np.float32).
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomHorizontalFlip(0.5),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(), py_transforms.RandomHorizontalFlip(0.5),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
def __init__(self, output_type=np.float32):
|
||||
|
@ -132,11 +90,13 @@ class ToType:
|
|||
output_type (Numpy datatype): The datatype of the NumPy output, e.g. numpy.float32.
|
||||
|
||||
Examples:
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>> import numpy as np
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomHorizontalFlip(0.5),
|
||||
>>> py_transforms.ToTensor(),
|
||||
>>> py_transforms.ToType(np.float32)])
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(), py_transforms.RandomHorizontalFlip(0.5),
|
||||
>>> py_transforms.ToTensor(),
|
||||
>>> py_transforms.ToType(np.float32)])
|
||||
"""
|
||||
|
||||
def __init__(self, output_type):
|
||||
|
@ -179,9 +139,11 @@ class ToPIL:
|
|||
|
||||
Examples:
|
||||
>>> # data is already decoded, but not in PIL image format
|
||||
>>> py_transforms.ComposeOp([py_transforms.ToPIL(),
|
||||
>>> py_transforms.RandomHorizontalFlip(0.5),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.ToPIL(), py_transforms.RandomHorizontalFlip(0.5),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
def __call__(self, img):
|
||||
|
@ -202,7 +164,10 @@ class Decode:
|
|||
Decode the input image to PIL image format in RGB mode.
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomHorizontalFlip(0.5),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
@ -233,10 +198,13 @@ class Normalize:
|
|||
The standard deviation values must be in range (0.0, 1.0].
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomHorizontalFlip(0.5),
|
||||
>>> py_transforms.ToTensor(),
|
||||
>>> py_transforms.Normalize((0.491, 0.482, 0.447), (0.247, 0.243, 0.262))])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomHorizontalFlip(0.5),
|
||||
>>> py_transforms.ToTensor(),
|
||||
>>> py_transforms.Normalize((0.491, 0.482, 0.447), (0.247, 0.243, 0.262))])
|
||||
"""
|
||||
|
||||
@check_normalize_py
|
||||
|
@ -291,9 +259,12 @@ class RandomCrop:
|
|||
value of edge.
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomCrop(224),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomCrop(224),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_random_crop
|
||||
|
@ -330,9 +301,12 @@ class RandomHorizontalFlip:
|
|||
prob (float, optional): Probability of the image being flipped (default=0.5).
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomHorizontalFlip(0.5),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomHorizontalFlip(0.5),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_prob
|
||||
|
@ -360,9 +334,12 @@ class RandomVerticalFlip:
|
|||
prob (float, optional): Probability of the image being flipped (default=0.5).
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomVerticalFlip(0.5),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomVerticalFlip(0.5),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_prob
|
||||
|
@ -401,9 +378,12 @@ class Resize:
|
|||
- Inter.BICUBIC, means interpolation method is bicubic interpolation.
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.Resize(256),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.Resize(256),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_resize_interpolation
|
||||
|
@ -448,9 +428,12 @@ class RandomResizedCrop:
|
|||
crop area (default=10). If exceeded, fall back to use center crop instead.
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomResizedCrop(224),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomResizedCrop(224),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_random_resize_crop
|
||||
|
@ -486,9 +469,12 @@ class CenterCrop:
|
|||
If size is a sequence of length 2, it should be (height, width).
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.CenterCrop(64),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.CenterCrop(64),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_crop
|
||||
|
@ -527,9 +513,12 @@ class RandomColorAdjust:
|
|||
If it is a sequence, it should be [min, max] where -0.5 <= min <= max <= 0.5.
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomColorAdjust(0.4, 0.4, 0.4, 0.1),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomColorAdjust(0.4, 0.4, 0.4, 0.1),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_random_color_adjust
|
||||
|
@ -585,9 +574,12 @@ class RandomRotation:
|
|||
If it is an int, it is used for all RGB channels. Default is 0.
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomRotation(30),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomRotation(30),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_random_rotation
|
||||
|
@ -619,10 +611,12 @@ class RandomOrder:
|
|||
transforms (list): List of the transformations to be applied.
|
||||
|
||||
Examples:
|
||||
>>> transforms_list = [py_transforms.CenterCrop(64), py_transforms.RandomRotation(30)]
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomOrder(transforms_list),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomOrder(transforms_list),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_transforms_list
|
||||
|
@ -651,10 +645,12 @@ class RandomApply:
|
|||
prob (float, optional): The probability to apply the transformation list (default=0.5).
|
||||
|
||||
Examples:
|
||||
>>> transforms_list = [py_transforms.CenterCrop(64), py_transforms.RandomRotation(30)]
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomApply(transforms_list, prob=0.6),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomApply(transforms_list, prob=0.6),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_random_apply
|
||||
|
@ -683,10 +679,12 @@ class RandomChoice:
|
|||
transforms (list): List of transformations to be chosen from to apply.
|
||||
|
||||
Examples:
|
||||
>>> transforms_list = [py_transforms.CenterCrop(64), py_transforms.RandomRotation(30)]
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomChoice(transforms_list),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomChoice(transforms_list),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_transforms_list
|
||||
|
@ -716,10 +714,13 @@ class FiveCrop:
|
|||
If size is a sequence of length 2, it should be (height, width).
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.FiveCrop(size),
|
||||
>>> # 4D stack of 5 images
|
||||
>>> lambda images: numpy.stack([py_transforms.ToTensor()(image) for image in images])])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.FiveCrop(size),
|
||||
>>> # 4D stack of 5 images
|
||||
>>> lambda images: numpy.stack([py_transforms.ToTensor()(image) for image in images])])
|
||||
"""
|
||||
|
||||
@check_crop
|
||||
|
@ -752,10 +753,13 @@ class TenCrop:
|
|||
if set to True (default=False).
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.TenCrop(size),
|
||||
>>> # 4D stack of 10 images
|
||||
>>> lambda images: numpy.stack([py_transforms.ToTensor()(image) for image in images])])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.TenCrop(size),
|
||||
>>> # 4D stack of 10 images
|
||||
>>> lambda images: numpy.stack([py_transforms.ToTensor()(image) for image in images])])
|
||||
"""
|
||||
|
||||
@check_ten_crop
|
||||
|
@ -789,9 +793,12 @@ class Grayscale:
|
|||
Default is 1. If set to 3, the returned image has 3 identical RGB channels.
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.Grayscale(3),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.Grayscale(3),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_num_channels
|
||||
|
@ -819,9 +826,12 @@ class RandomGrayscale:
|
|||
prob (float, optional): Probability of the image being converted to grayscale (default=0.1).
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomGrayscale(0.3),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomGrayscale(0.3),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_prob
|
||||
|
@ -878,10 +888,13 @@ class Pad:
|
|||
value of edge.
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> # adds 10 pixels (default black) to each side of the border of the image
|
||||
>>> py_transforms.Pad(padding=10),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> # adds 10 pixels (default black) to each side of the border of the image
|
||||
>>> py_transforms.Pad(padding=10),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_pad
|
||||
|
@ -922,9 +935,12 @@ class RandomPerspective:
|
|||
- Inter.BICUBIC, means interpolation method is bicubic interpolation.
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomPerspective(prob=0.1),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomPerspective(prob=0.1),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_random_perspective
|
||||
|
@ -972,9 +988,12 @@ class RandomErasing:
|
|||
erase_area (default=10). If exceeded, return the original image.
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.ToTensor(),
|
||||
>>> py_transforms.RandomErasing(value='random')])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.ToTensor(),
|
||||
>>> py_transforms.RandomErasing(value='random')])
|
||||
"""
|
||||
|
||||
@check_random_erasing
|
||||
|
@ -1016,9 +1035,12 @@ class Cutout:
|
|||
num_patches (int, optional): Number of patches to be cut out of an image (default=1).
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.ToTensor(),
|
||||
>>> py_transforms.Cutout(80)])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.ToTensor(),
|
||||
>>> py_transforms.Cutout(80)])
|
||||
"""
|
||||
|
||||
@check_cutout
|
||||
|
@ -1043,7 +1065,8 @@ class Cutout:
|
|||
bounded = False
|
||||
|
||||
for _ in range(self.num_patches):
|
||||
i, j, erase_h, erase_w, erase_value = util.get_erase_params(np_img, (scale, scale), (1, 1), 0, bounded, 1)
|
||||
i, j, erase_h, erase_w, erase_value = util.get_erase_params(np_img, (scale, scale), (1, 1), 0, bounded,
|
||||
1)
|
||||
np_img = util.erase(np_img, i, j, erase_h, erase_w, erase_value)
|
||||
return np_img
|
||||
|
||||
|
@ -1061,10 +1084,13 @@ class LinearTransformation:
|
|||
mean_vector (numpy.ndarray): a NumPy ndarray of shape (D,) where D = C x H x W.
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.Resize(256),
|
||||
>>> py_transforms.ToTensor(),
|
||||
>>> py_transforms.LinearTransformation(transformation_matrix, mean_vector)])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.Resize(256),
|
||||
>>> py_transforms.ToTensor(),
|
||||
>>> py_transforms.LinearTransformation(transformation_matrix, mean_vector)])
|
||||
"""
|
||||
|
||||
@check_linear_transform
|
||||
|
@ -1133,9 +1159,12 @@ class RandomAffine:
|
|||
TypeError: If fill_value is not a single integer or a 3-tuple.
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomAffine(degrees=15, translate=(0.1, 0.1), scale=(0.9, 1.1)),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomAffine(degrees=15, translate=(0.1, 0.1), scale=(0.9, 1.1)),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_random_affine
|
||||
|
@ -1278,9 +1307,12 @@ class RandomColor:
|
|||
It should be in (min, max) format (default=(0.1,1.9)).
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomColor((0.5,1.5)),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomColor((0.5,1.5)),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_positive_degrees
|
||||
|
@ -1310,9 +1342,12 @@ class RandomSharpness:
|
|||
It should be in (min, max) format (default=(0.1,1.9)).
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomSharpness((0.5,1.5)),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.RandomSharpness((0.5,1.5)),
|
||||
>>> py_transforms.ToTensor()])
|
||||
|
||||
"""
|
||||
|
||||
|
@ -1343,9 +1378,12 @@ class AutoContrast:
|
|||
ignore (Union[int, sequence], optional): Pixel values to ignore (default=None).
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.AutoContrast(),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.AutoContrast(),
|
||||
>>> py_transforms.ToTensor()])
|
||||
|
||||
"""
|
||||
|
||||
|
@ -1373,9 +1411,12 @@ class Invert:
|
|||
Invert colors of input PIL image.
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.Invert(),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.Invert(),
|
||||
>>> py_transforms.ToTensor()])
|
||||
|
||||
"""
|
||||
|
||||
|
@ -1398,9 +1439,12 @@ class Equalize:
|
|||
Equalize the histogram of input PIL image.
|
||||
|
||||
Examples:
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.Equalize(),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.Equalize(),
|
||||
>>> py_transforms.ToTensor()])
|
||||
|
||||
"""
|
||||
|
||||
|
@ -1430,13 +1474,16 @@ class UniformAugment:
|
|||
num_ops (int, optional): number of transforms to sequentially apply (default=2).
|
||||
|
||||
Examples:
|
||||
>>> import mindspore.dataset.vision.py_transforms as py_transforms
|
||||
>>> from mindspore.dataset.transforms.py_transforms import Compose
|
||||
>>>
|
||||
>>> transforms_list = [py_transforms.CenterCrop(64),
|
||||
>>> py_transforms.RandomColor(),
|
||||
>>> py_transforms.RandomSharpness(),
|
||||
>>> py_transforms.RandomRotation(30)]
|
||||
>>> py_transforms.ComposeOp([py_transforms.Decode(),
|
||||
>>> py_transforms.UniformAugment(transforms_list),
|
||||
>>> py_transforms.ToTensor()])
|
||||
>>> Compose([py_transforms.Decode(),
|
||||
>>> py_transforms.UniformAugment(transforms_list),
|
||||
>>> py_transforms.ToTensor()])
|
||||
"""
|
||||
|
||||
@check_uniform_augment_py
|
|
@ -24,6 +24,7 @@ import numpy as np
|
|||
from PIL import Image, ImageOps, ImageEnhance, __version__
|
||||
|
||||
from .utils import Inter
|
||||
from ..core.py_util_helpers import is_numpy
|
||||
|
||||
augment_error_message = 'img should be PIL image. Got {}. Use Decode() for encoded data or ToPIL() for decoded data.'
|
||||
|
||||
|
@ -41,39 +42,6 @@ def is_pil(img):
|
|||
return isinstance(img, Image.Image)
|
||||
|
||||
|
||||
def is_numpy(img):
|
||||
"""
|
||||
Check if the input image is NumPy format.
|
||||
|
||||
Args:
|
||||
img: Image to be checked.
|
||||
|
||||
Returns:
|
||||
Bool, True if input is NumPy image.
|
||||
"""
|
||||
return isinstance(img, np.ndarray)
|
||||
|
||||
|
||||
def compose(img, transforms):
|
||||
"""
|
||||
Compose a list of transforms and apply on the image.
|
||||
|
||||
Args:
|
||||
img (numpy.ndarray): An image in NumPy ndarray.
|
||||
transforms (list): A list of transform Class objects to be composed.
|
||||
|
||||
Returns:
|
||||
img (numpy.ndarray), An augmented image in NumPy ndarray.
|
||||
"""
|
||||
if is_numpy(img):
|
||||
for transform in transforms:
|
||||
img = transform(img)
|
||||
if is_numpy(img):
|
||||
return img
|
||||
raise TypeError('img should be NumPy ndarray. Got {}. Append ToTensor() to transforms'.format(type(img)))
|
||||
raise TypeError('img should be NumPy ndarray. Got {}.'.format(type(img)))
|
||||
|
||||
|
||||
def normalize(img, mean, std):
|
||||
"""
|
||||
Normalize the image between [0, 1] with respect to mean and standard deviation.
|
||||
|
@ -1221,32 +1189,6 @@ def random_affine(img, angle, translations, scale, shear, resample, fill_value=0
|
|||
return img.transform(output_size, Image.AFFINE, matrix, resample, **kwargs)
|
||||
|
||||
|
||||
def one_hot_encoding(label, num_classes, epsilon):
|
||||
"""
|
||||
Apply label smoothing transformation to the input label, and make label be more smoothing and continuous.
|
||||
|
||||
Args:
|
||||
label (numpy.ndarray): label to be applied label smoothing.
|
||||
num_classes (int): Num class of object in dataset, value should over 0.
|
||||
epsilon (float): The adjustable Hyper parameter. Default is 0.0.
|
||||
|
||||
Returns:
|
||||
img (numpy.ndarray), label after being one hot encoded and done label smoothed.
|
||||
"""
|
||||
if label > num_classes:
|
||||
raise ValueError('the num_classes is smaller than the category number.')
|
||||
|
||||
num_elements = label.size
|
||||
one_hot_label = np.zeros((num_elements, num_classes), dtype=int)
|
||||
|
||||
if isinstance(label, list) is False:
|
||||
label = [label]
|
||||
for index in range(num_elements):
|
||||
one_hot_label[index, label[index]] = 1
|
||||
|
||||
return (1 - epsilon) * one_hot_label + epsilon / num_classes
|
||||
|
||||
|
||||
def mix_up_single(batch_size, img, label, alpha=0.2):
|
||||
"""
|
||||
Apply mix up transformation to image and label in single batch internal, One hot encoding should done before this.
|
|
@ -19,10 +19,10 @@ from functools import wraps
|
|||
import numpy as np
|
||||
from mindspore._c_dataengine import TensorOp
|
||||
|
||||
from .utils import Inter, Border, ImageBatchFormat
|
||||
from ...core.validator_helpers import check_value, check_uint8, FLOAT_MAX_INTEGER, check_pos_float32, \
|
||||
from mindspore.dataset.core.validator_helpers import check_value, check_uint8, FLOAT_MAX_INTEGER, check_pos_float32, \
|
||||
check_2tuple, check_range, check_positive, INT32_MAX, parse_user_args, type_check, type_check_list, \
|
||||
check_tensor_op, UINT8_MAX, check_value_normalize_std
|
||||
from .utils import Inter, Border, ImageBatchFormat
|
||||
|
||||
|
||||
def check_crop_size(size):
|
||||
|
@ -678,21 +678,6 @@ def check_positive_degrees(method):
|
|||
return new_method
|
||||
|
||||
|
||||
def check_compose_list(method):
|
||||
"""Wrapper method to check the transform list of ComposeOp."""
|
||||
|
||||
@wraps(method)
|
||||
def new_method(self, *args, **kwargs):
|
||||
[transforms], _ = parse_user_args(method, *args, **kwargs)
|
||||
|
||||
type_check(transforms, (list,), transforms)
|
||||
if not transforms:
|
||||
raise ValueError("transforms list is empty.")
|
||||
|
||||
return method(self, *args, **kwargs)
|
||||
|
||||
return new_method
|
||||
|
||||
|
||||
def check_random_select_subpolicy_op(method):
|
||||
"""Wrapper method to check the parameters of RandomSelectSubpolicyOp."""
|
|
@ -727,7 +727,7 @@ class SummaryCollector(Callback):
|
|||
Get dataset path of MindDataset object.
|
||||
|
||||
Args:
|
||||
output_dataset (Union[Dataset, ImageFolderDatasetV2, MnistDataset, Cifar10Dataset, Cifar100Dataset,
|
||||
output_dataset (Union[Dataset, ImageFolderDataset, MnistDataset, Cifar10Dataset, Cifar100Dataset,
|
||||
VOCDataset, CelebADataset, MindDataset, ManifestDataset, TFRecordDataset, TextFileDataset]):
|
||||
Refer to mindspore.dataset.Dataset.
|
||||
|
||||
|
@ -738,7 +738,7 @@ class SummaryCollector(Callback):
|
|||
IndexError: it means get dataset path failed.
|
||||
"""
|
||||
dataset_package = import_module('mindspore.dataset')
|
||||
dataset_dir_set = (dataset_package.ImageFolderDatasetV2, dataset_package.MnistDataset,
|
||||
dataset_dir_set = (dataset_package.ImageFolderDataset, dataset_package.MnistDataset,
|
||||
dataset_package.Cifar10Dataset, dataset_package.Cifar100Dataset,
|
||||
dataset_package.VOCDataset, dataset_package.CelebADataset)
|
||||
dataset_file_set = (dataset_package.MindDataset, dataset_package.ManifestDataset)
|
||||
|
|
|
@ -449,7 +449,7 @@ def create_fasterrcnn_dataset(mindrecord_file, batch_size=2, repeat_num=12, devi
|
|||
if is_training:
|
||||
ds = ds.map(input_columns=["image", "annotation"],
|
||||
output_columns=["image", "image_shape", "box", "label", "valid_num"],
|
||||
columns_order=["image", "image_shape", "box", "label", "valid_num"],
|
||||
column_order=["image", "image_shape", "box", "label", "valid_num"],
|
||||
operations=compose_map_func, num_parallel_workers=num_parallel_workers)
|
||||
|
||||
flip = (np.random.rand() < config.flip_ratio)
|
||||
|
@ -467,7 +467,7 @@ def create_fasterrcnn_dataset(mindrecord_file, batch_size=2, repeat_num=12, devi
|
|||
else:
|
||||
ds = ds.map(input_columns=["image", "annotation"],
|
||||
output_columns=["image", "image_shape", "box", "label", "valid_num"],
|
||||
columns_order=["image", "image_shape", "box", "label", "valid_num"],
|
||||
column_order=["image", "image_shape", "box", "label", "valid_num"],
|
||||
operations=compose_map_func,
|
||||
num_parallel_workers=num_parallel_workers)
|
||||
|
||||
|
|
|
@ -37,10 +37,10 @@ def create_dataset(dataset_path, do_train, rank, group_size, repeat_num=1):
|
|||
dataset
|
||||
"""
|
||||
if group_size == 1:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=cfg.work_nums, shuffle=True)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=cfg.work_nums, shuffle=True)
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=cfg.work_nums, shuffle=True,
|
||||
num_shards=group_size, shard_id=rank)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=cfg.work_nums, shuffle=True,
|
||||
num_shards=group_size, shard_id=rank)
|
||||
# define map operations
|
||||
if do_train:
|
||||
trans = [
|
||||
|
|
|
@ -505,7 +505,7 @@ def create_maskrcnn_dataset(mindrecord_file, batch_size=2, device_num=1, rank_id
|
|||
if is_training:
|
||||
ds = ds.map(input_columns=["image", "annotation", "mask", "mask_shape"],
|
||||
output_columns=["image", "image_shape", "box", "label", "valid_num", "mask"],
|
||||
columns_order=["image", "image_shape", "box", "label", "valid_num", "mask"],
|
||||
column_order=["image", "image_shape", "box", "label", "valid_num", "mask"],
|
||||
operations=compose_map_func,
|
||||
python_multiprocessing=False,
|
||||
num_parallel_workers=num_parallel_workers)
|
||||
|
@ -514,7 +514,7 @@ def create_maskrcnn_dataset(mindrecord_file, batch_size=2, device_num=1, rank_id
|
|||
else:
|
||||
ds = ds.map(input_columns=["image", "annotation", "mask", "mask_shape"],
|
||||
output_columns=["image", "image_shape", "box", "label", "valid_num", "mask"],
|
||||
columns_order=["image", "image_shape", "box", "label", "valid_num", "mask"],
|
||||
column_order=["image", "image_shape", "box", "label", "valid_num", "mask"],
|
||||
operations=compose_map_func,
|
||||
num_parallel_workers=num_parallel_workers)
|
||||
ds = ds.batch(batch_size, drop_remainder=True)
|
||||
|
|
|
@ -26,6 +26,7 @@ import mindspore.dataset.engine as de
|
|||
import mindspore.dataset.transforms.vision.c_transforms as C
|
||||
import mindspore.dataset.transforms.c_transforms as C2
|
||||
|
||||
|
||||
def create_dataset(dataset_path, do_train, config, repeat_num=1):
|
||||
"""
|
||||
create a train or eval dataset
|
||||
|
@ -44,20 +45,19 @@ def create_dataset(dataset_path, do_train, config, repeat_num=1):
|
|||
rank_size = int(os.getenv("RANK_SIZE", '1'))
|
||||
rank_id = int(os.getenv("RANK_ID", '0'))
|
||||
if rank_size == 1:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=rank_size, shard_id=rank_id)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=rank_size, shard_id=rank_id)
|
||||
elif config.platform == "GPU":
|
||||
if do_train:
|
||||
from mindspore.communication.management import get_rank, get_group_size
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=get_group_size(), shard_id=get_rank())
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=get_group_size(), shard_id=get_rank())
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
elif config.platform == "CPU":
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
|
||||
resize_height = config.image_height
|
||||
resize_width = config.image_width
|
||||
|
@ -71,7 +71,8 @@ def create_dataset(dataset_path, do_train, config, repeat_num=1):
|
|||
resize_op = C.Resize((256, 256))
|
||||
center_crop = C.CenterCrop(resize_width)
|
||||
rescale_op = C.RandomColorAdjust(brightness=0.4, contrast=0.4, saturation=0.4)
|
||||
normalize_op = C.Normalize(mean=[0.485*255, 0.456*255, 0.406*255], std=[0.229*255, 0.224*255, 0.225*255])
|
||||
normalize_op = C.Normalize(mean=[0.485 * 255, 0.456 * 255, 0.406 * 255],
|
||||
std=[0.229 * 255, 0.224 * 255, 0.225 * 255])
|
||||
change_swap_op = C.HWC2CHW()
|
||||
|
||||
if do_train:
|
||||
|
@ -95,6 +96,7 @@ def create_dataset(dataset_path, do_train, config, repeat_num=1):
|
|||
|
||||
return ds
|
||||
|
||||
|
||||
def extract_features(net, dataset_path, config):
|
||||
features_folder = dataset_path + '_features'
|
||||
if not os.path.exists(features_folder):
|
||||
|
@ -110,13 +112,13 @@ def extract_features(net, dataset_path, config):
|
|||
for data in pbar:
|
||||
features_path = os.path.join(features_folder, f"feature_{i}.npy")
|
||||
label_path = os.path.join(features_folder, f"label_{i}.npy")
|
||||
if not(os.path.exists(features_path) and os.path.exists(label_path)):
|
||||
if not (os.path.exists(features_path) and os.path.exists(label_path)):
|
||||
image = data["image"]
|
||||
label = data["label"]
|
||||
features = model.predict(Tensor(image))
|
||||
np.save(features_path, features.asnumpy())
|
||||
np.save(label_path, label)
|
||||
pbar.set_description("Process dataset batch: %d"%(i+1))
|
||||
pbar.set_description("Process dataset batch: %d" % (i + 1))
|
||||
i += 1
|
||||
|
||||
return step_size
|
||||
|
|
|
@ -21,7 +21,8 @@ import mindspore.common.dtype as mstype
|
|||
import mindspore.dataset.engine as de
|
||||
import mindspore.dataset.transforms.vision.c_transforms as C
|
||||
import mindspore.dataset.transforms.c_transforms as C2
|
||||
import mindspore.dataset.transforms.vision.py_transforms as P
|
||||
import mindspore.dataset.transforms.py_transforms
|
||||
import mindspore.dataset.vision.py_transforms as P
|
||||
|
||||
|
||||
def create_dataset(dataset_path, do_train, config, device_target, repeat_num=1, batch_size=32):
|
||||
|
@ -44,7 +45,7 @@ def create_dataset(dataset_path, do_train, config, device_target, repeat_num=1,
|
|||
if config.data_load_mode == "mindrecord":
|
||||
load_func = partial(de.MindDataset, dataset_path, columns_list)
|
||||
else:
|
||||
load_func = partial(de.ImageFolderDatasetV2, dataset_path)
|
||||
load_func = partial(de.ImageFolderDataset, dataset_path)
|
||||
if do_train:
|
||||
if rank_size == 1:
|
||||
ds = load_func(num_parallel_workers=8, shuffle=True)
|
||||
|
@ -56,10 +57,10 @@ def create_dataset(dataset_path, do_train, config, device_target, repeat_num=1,
|
|||
elif device_target == "GPU":
|
||||
if do_train:
|
||||
from mindspore.communication.management import get_rank, get_group_size
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=get_group_size(), shard_id=get_rank())
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=get_group_size(), shard_id=get_rank())
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
else:
|
||||
raise ValueError("Unsupported device_target.")
|
||||
|
||||
|
@ -118,12 +119,12 @@ def create_dataset_py(dataset_path, do_train, config, device_target, repeat_num=
|
|||
rank_id = int(os.getenv("RANK_ID"))
|
||||
if do_train:
|
||||
if rank_size == 1:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=rank_size, shard_id=rank_id)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=rank_size, shard_id=rank_id)
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=False)
|
||||
else:
|
||||
raise ValueError("Unsupported device target.")
|
||||
|
||||
|
@ -149,9 +150,9 @@ def create_dataset_py(dataset_path, do_train, config, device_target, repeat_num=
|
|||
else:
|
||||
trans = [decode_op, resize_op, center_crop, to_tensor, normalize_op]
|
||||
|
||||
compose = P.ComposeOp(trans)
|
||||
compose = mindspore.dataset.transforms.py_transforms.Compose(trans)
|
||||
|
||||
ds = ds.map(input_columns="image", operations=compose(), num_parallel_workers=8, python_multiprocessing=True)
|
||||
ds = ds.map(input_columns="image", operations=compose, num_parallel_workers=8, python_multiprocessing=True)
|
||||
|
||||
# apply batch operations
|
||||
ds = ds.batch(batch_size, drop_remainder=True)
|
||||
|
|
|
@ -37,10 +37,10 @@ def create_dataset(dataset_path, do_train, config, device_target, repeat_num=1,
|
|||
if device_target == "GPU":
|
||||
if do_train:
|
||||
from mindspore.communication.management import get_rank, get_group_size
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=get_group_size(), shard_id=get_rank())
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=get_group_size(), shard_id=get_rank())
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
else:
|
||||
raise ValueError("Unsupported device_target.")
|
||||
|
||||
|
|
|
@ -37,24 +37,24 @@ def create_dataset(dataset_path, config, do_train, repeat_num=1):
|
|||
rank = config.rank
|
||||
group_size = config.group_size
|
||||
if group_size == 1:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=config.work_nums, shuffle=True)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=config.work_nums, shuffle=True)
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=config.work_nums, shuffle=True,
|
||||
num_shards=group_size, shard_id=rank)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=config.work_nums, shuffle=True,
|
||||
num_shards=group_size, shard_id=rank)
|
||||
# define map operations
|
||||
if do_train:
|
||||
trans = [
|
||||
C.RandomCropDecodeResize(config.image_size),
|
||||
C.RandomHorizontalFlip(prob=0.5),
|
||||
C.RandomColorAdjust(brightness=0.4, saturation=0.5) # fast mode
|
||||
#C.RandomColorAdjust(brightness=0.4, contrast=0.5, saturation=0.5, hue=0.2)
|
||||
]
|
||||
C.RandomColorAdjust(brightness=0.4, saturation=0.5) # fast mode
|
||||
# C.RandomColorAdjust(brightness=0.4, contrast=0.5, saturation=0.5, hue=0.2)
|
||||
]
|
||||
else:
|
||||
trans = [
|
||||
C.Decode(),
|
||||
C.Resize(int(config.image_size/0.875)),
|
||||
C.Resize(int(config.image_size / 0.875)),
|
||||
C.CenterCrop(config.image_size)
|
||||
]
|
||||
]
|
||||
trans += [
|
||||
C.Rescale(1.0 / 255.0, 0.0),
|
||||
C.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]),
|
||||
|
|
|
@ -98,10 +98,10 @@ def create_dataset2(dataset_path, do_train, repeat_num=1, batch_size=32, target=
|
|||
device_num = get_group_size()
|
||||
|
||||
if device_num == 1:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=device_num, shard_id=rank_id)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=device_num, shard_id=rank_id)
|
||||
|
||||
image_size = 224
|
||||
mean = [0.485 * 255, 0.456 * 255, 0.406 * 255]
|
||||
|
@ -153,10 +153,10 @@ def create_dataset3(dataset_path, do_train, repeat_num=1, batch_size=32, target=
|
|||
device_num, rank_id = _get_rank_info()
|
||||
|
||||
if device_num == 1:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=device_num, shard_id=rank_id)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=device_num, shard_id=rank_id)
|
||||
image_size = 224
|
||||
mean = [0.475 * 255, 0.451 * 255, 0.392 * 255]
|
||||
std = [0.275 * 255, 0.267 * 255, 0.278 * 255]
|
||||
|
@ -207,10 +207,10 @@ def create_dataset4(dataset_path, do_train, repeat_num=1, batch_size=32, target=
|
|||
if target == "Ascend":
|
||||
device_num, rank_id = _get_rank_info()
|
||||
if device_num == 1:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=12, shuffle=True)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=12, shuffle=True)
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=12, shuffle=True,
|
||||
num_shards=device_num, shard_id=rank_id)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=12, shuffle=True,
|
||||
num_shards=device_num, shard_id=rank_id)
|
||||
image_size = 224
|
||||
mean = [123.68, 116.78, 103.94]
|
||||
std = [1.0, 1.0, 1.0]
|
||||
|
|
|
@ -21,7 +21,8 @@ import mindspore.common.dtype as mstype
|
|||
import mindspore.dataset.engine as de
|
||||
import mindspore.dataset.transforms.vision.c_transforms as C
|
||||
import mindspore.dataset.transforms.c_transforms as C2
|
||||
import mindspore.dataset.transforms.vision.py_transforms as P
|
||||
import mindspore.dataset.transforms.py_transforms
|
||||
import mindspore.dataset.vision.py_transforms as P
|
||||
from mindspore.communication.management import init, get_rank, get_group_size
|
||||
from src.config import config_quant
|
||||
|
||||
|
@ -54,7 +55,7 @@ def create_dataset(dataset_path, do_train, repeat_num=1, batch_size=32, target="
|
|||
if config.data_load_mode == "mindrecord":
|
||||
load_func = partial(de.MindDataset, dataset_path, columns_list)
|
||||
else:
|
||||
load_func = partial(de.ImageFolderDatasetV2, dataset_path)
|
||||
load_func = partial(de.ImageFolderDataset, dataset_path)
|
||||
if device_num == 1:
|
||||
ds = load_func(num_parallel_workers=8, shuffle=True)
|
||||
else:
|
||||
|
@ -120,12 +121,12 @@ def create_dataset_py(dataset_path, do_train, repeat_num=1, batch_size=32, targe
|
|||
|
||||
if do_train:
|
||||
if device_num == 1:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=device_num, shard_id=rank_id)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=device_num, shard_id=rank_id)
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=False)
|
||||
|
||||
image_size = 224
|
||||
|
||||
|
@ -145,8 +146,8 @@ def create_dataset_py(dataset_path, do_train, repeat_num=1, batch_size=32, targe
|
|||
else:
|
||||
trans = [decode_op, resize_op, center_crop, to_tensor, normalize_op]
|
||||
|
||||
compose = P.ComposeOp(trans)
|
||||
ds = ds.map(input_columns="image", operations=compose(), num_parallel_workers=8, python_multiprocessing=True)
|
||||
compose = mindspore.dataset.transforms.py_transforms.Compose(trans)
|
||||
ds = ds.map(input_columns="image", operations=compose, num_parallel_workers=8, python_multiprocessing=True)
|
||||
|
||||
# apply batch operations
|
||||
ds = ds.batch(batch_size, drop_remainder=True)
|
||||
|
|
|
@ -47,10 +47,10 @@ def create_dataset(dataset_path, do_train, repeat_num=1, batch_size=32, target="
|
|||
num_parallels = 4
|
||||
|
||||
if device_num == 1:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=num_parallels, shuffle=True)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=num_parallels, shuffle=True)
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=num_parallels, shuffle=True,
|
||||
num_shards=device_num, shard_id=rank_id)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=num_parallels, shuffle=True,
|
||||
num_shards=device_num, shard_id=rank_id)
|
||||
|
||||
image_size = 224
|
||||
mean = [0.485 * 255, 0.456 * 255, 0.406 * 255]
|
||||
|
@ -86,6 +86,7 @@ def create_dataset(dataset_path, do_train, repeat_num=1, batch_size=32, target="
|
|||
|
||||
return ds
|
||||
|
||||
|
||||
def _get_rank_info():
|
||||
"""
|
||||
get rank size and rank id
|
||||
|
|
|
@ -134,9 +134,9 @@ def classification_dataset(data_dir, image_size, per_batch_size, max_epoch, rank
|
|||
transform_label = target_transform
|
||||
|
||||
if input_mode == 'folder':
|
||||
de_dataset = de.ImageFolderDatasetV2(data_dir, num_parallel_workers=num_parallel_workers,
|
||||
shuffle=shuffle, sampler=sampler, class_indexing=class_indexing,
|
||||
num_shards=group_size, shard_id=rank)
|
||||
de_dataset = de.ImageFolderDataset(data_dir, num_parallel_workers=num_parallel_workers,
|
||||
shuffle=shuffle, sampler=sampler, class_indexing=class_indexing,
|
||||
num_shards=group_size, shard_id=rank)
|
||||
else:
|
||||
dataset = TxtDataset(root, data_dir)
|
||||
sampler = DistributedSampler(dataset, rank, group_size, shuffle=shuffle)
|
||||
|
|
|
@ -30,6 +30,7 @@ class toBGR():
|
|||
img = np.ascontiguousarray(img)
|
||||
return img
|
||||
|
||||
|
||||
def create_dataset(dataset_path, do_train, rank, group_size, repeat_num=1):
|
||||
"""
|
||||
create a train or eval dataset
|
||||
|
@ -45,23 +46,23 @@ def create_dataset(dataset_path, do_train, rank, group_size, repeat_num=1):
|
|||
dataset
|
||||
"""
|
||||
if group_size == 1:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=cfg.work_nums, shuffle=True)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=cfg.work_nums, shuffle=True)
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=cfg.work_nums, shuffle=True,
|
||||
num_shards=group_size, shard_id=rank)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=cfg.work_nums, shuffle=True,
|
||||
num_shards=group_size, shard_id=rank)
|
||||
# define map operations
|
||||
if do_train:
|
||||
trans = [
|
||||
C.RandomCropDecodeResize(224),
|
||||
C.RandomHorizontalFlip(prob=0.5),
|
||||
C.RandomColorAdjust(brightness=0.4, contrast=0.4, saturation=0.4)
|
||||
]
|
||||
]
|
||||
else:
|
||||
trans = [
|
||||
C.Decode(),
|
||||
C.Resize(256),
|
||||
C.CenterCrop(224)
|
||||
]
|
||||
]
|
||||
trans += [
|
||||
toBGR(),
|
||||
C.Rescale(1.0 / 255.0, 0.0),
|
||||
|
|
|
@ -403,7 +403,7 @@ def create_ssd_dataset(mindrecord_file, batch_size=32, repeat_num=10, device_num
|
|||
output_columns = ["img_id", "image", "image_shape"]
|
||||
trans = [normalize_op, change_swap_op]
|
||||
ds = ds.map(input_columns=["img_id", "image", "annotation"],
|
||||
output_columns=output_columns, columns_order=output_columns,
|
||||
output_columns=output_columns, column_order=output_columns,
|
||||
operations=compose_map_func, python_multiprocessing=is_training,
|
||||
num_parallel_workers=num_parallel_workers)
|
||||
ds = ds.map(input_columns=["image"], operations=trans, python_multiprocessing=is_training,
|
||||
|
|
|
@ -149,9 +149,9 @@ def classification_dataset(data_dir, image_size, per_batch_size, rank=0, group_s
|
|||
transform_label = target_transform
|
||||
|
||||
if input_mode == 'folder':
|
||||
de_dataset = de.ImageFolderDatasetV2(data_dir, num_parallel_workers=num_parallel_workers,
|
||||
shuffle=shuffle, sampler=sampler, class_indexing=class_indexing,
|
||||
num_shards=group_size, shard_id=rank)
|
||||
de_dataset = de.ImageFolderDataset(data_dir, num_parallel_workers=num_parallel_workers,
|
||||
shuffle=shuffle, sampler=sampler, class_indexing=class_indexing,
|
||||
num_shards=group_size, shard_id=rank)
|
||||
else:
|
||||
dataset = TxtDataset(root, data_dir)
|
||||
sampler = DistributedSampler(dataset, rank, group_size, shuffle=shuffle)
|
||||
|
|
|
@ -178,7 +178,7 @@ def create_yolo_dataset(image_dir, anno_path, batch_size, max_epoch, device_num,
|
|||
compose_map_func = (lambda image, img_id: reshape_fn(image, img_id, config))
|
||||
ds = ds.map(input_columns=["image", "img_id"],
|
||||
output_columns=["image", "image_shape", "img_id"],
|
||||
columns_order=["image", "image_shape", "img_id"],
|
||||
column_order=["image", "image_shape", "img_id"],
|
||||
operations=compose_map_func, num_parallel_workers=8)
|
||||
ds = ds.map(input_columns=["image"], operations=hwc_to_chw, num_parallel_workers=8)
|
||||
ds = ds.batch(batch_size, drop_remainder=True)
|
||||
|
|
|
@ -175,7 +175,7 @@ def create_yolo_dataset(image_dir, anno_path, batch_size, max_epoch, device_num,
|
|||
compose_map_func = (lambda image, img_id: reshape_fn(image, img_id, config))
|
||||
ds = ds.map(input_columns=["image", "img_id"],
|
||||
output_columns=["image", "image_shape", "img_id"],
|
||||
columns_order=["image", "image_shape", "img_id"],
|
||||
column_order=["image", "image_shape", "img_id"],
|
||||
operations=compose_map_func, num_parallel_workers=8)
|
||||
ds = ds.map(input_columns=["image"], operations=hwc_to_chw, num_parallel_workers=8)
|
||||
ds = ds.batch(batch_size, drop_remainder=True)
|
||||
|
|
|
@ -303,7 +303,7 @@ def create_yolo_dataset(mindrecord_dir, batch_size=32, repeat_num=1, device_num=
|
|||
hwc_to_chw = C.HWC2CHW()
|
||||
ds = ds.map(input_columns=["image", "annotation"],
|
||||
output_columns=["image", "bbox_1", "bbox_2", "bbox_3", "gt_box1", "gt_box2", "gt_box3"],
|
||||
columns_order=["image", "bbox_1", "bbox_2", "bbox_3", "gt_box1", "gt_box2", "gt_box3"],
|
||||
column_order=["image", "bbox_1", "bbox_2", "bbox_3", "gt_box1", "gt_box2", "gt_box3"],
|
||||
operations=compose_map_func, num_parallel_workers=num_parallel_workers)
|
||||
ds = ds.map(input_columns=["image"], operations=hwc_to_chw, num_parallel_workers=num_parallel_workers)
|
||||
ds = ds.batch(batch_size, drop_remainder=True)
|
||||
|
@ -311,6 +311,6 @@ def create_yolo_dataset(mindrecord_dir, batch_size=32, repeat_num=1, device_num=
|
|||
else:
|
||||
ds = ds.map(input_columns=["image", "annotation"],
|
||||
output_columns=["image", "image_shape", "annotation"],
|
||||
columns_order=["image", "image_shape", "annotation"],
|
||||
column_order=["image", "image_shape", "annotation"],
|
||||
operations=compose_map_func, num_parallel_workers=num_parallel_workers)
|
||||
return ds
|
||||
|
|
|
@ -43,7 +43,7 @@ def process_tnews_clue_dataset(data_dir, label_list, bert_vocab_path, data_usage
|
|||
### Processing label
|
||||
if data_usage == 'test':
|
||||
dataset = dataset.map(input_columns=["id"], output_columns=["id", "label_id"],
|
||||
columns_order=["id", "label_id", "sentence"], operations=ops.Duplicate())
|
||||
column_order=["id", "label_id", "sentence"], operations=ops.Duplicate())
|
||||
dataset = dataset.map(input_columns=["label_id"], operations=ops.Fill(0))
|
||||
else:
|
||||
label_vocab = text.Vocab.from_list(label_list)
|
||||
|
@ -61,10 +61,10 @@ def process_tnews_clue_dataset(data_dir, label_list, bert_vocab_path, data_usage
|
|||
dataset = dataset.map(input_columns=["sentence"], output_columns=["text_ids"], operations=lookup)
|
||||
dataset = dataset.map(input_columns=["text_ids"], operations=ops.PadEnd([max_seq_len], 0))
|
||||
dataset = dataset.map(input_columns=["text_ids"], output_columns=["text_ids", "mask_ids"],
|
||||
columns_order=["text_ids", "mask_ids", "label_id"], operations=ops.Duplicate())
|
||||
column_order=["text_ids", "mask_ids", "label_id"], operations=ops.Duplicate())
|
||||
dataset = dataset.map(input_columns=["mask_ids"], operations=ops.Mask(ops.Relational.NE, 0, mstype.int32))
|
||||
dataset = dataset.map(input_columns=["text_ids"], output_columns=["text_ids", "segment_ids"],
|
||||
columns_order=["text_ids", "mask_ids", "segment_ids", "label_id"], operations=ops.Duplicate())
|
||||
column_order=["text_ids", "mask_ids", "segment_ids", "label_id"], operations=ops.Duplicate())
|
||||
dataset = dataset.map(input_columns=["segment_ids"], operations=ops.Fill(0))
|
||||
dataset = dataset.batch(batch_size, drop_remainder=drop_remainder)
|
||||
return dataset
|
||||
|
@ -87,7 +87,7 @@ def process_cmnli_clue_dataset(data_dir, label_list, bert_vocab_path, data_usage
|
|||
### Processing label
|
||||
if data_usage == 'test':
|
||||
dataset = dataset.map(input_columns=["id"], output_columns=["id", "label_id"],
|
||||
columns_order=["id", "label_id", "sentence1", "sentence2"], operations=ops.Duplicate())
|
||||
column_order=["id", "label_id", "sentence1", "sentence2"], operations=ops.Duplicate())
|
||||
dataset = dataset.map(input_columns=["label_id"], operations=ops.Fill(0))
|
||||
else:
|
||||
label_vocab = text.Vocab.from_list(label_list)
|
||||
|
@ -110,26 +110,26 @@ def process_cmnli_clue_dataset(data_dir, label_list, bert_vocab_path, data_usage
|
|||
operations=ops.Concatenate(append=np.array(["[SEP]"], dtype='S')))
|
||||
### Generating segment_ids
|
||||
dataset = dataset.map(input_columns=["sentence1"], output_columns=["sentence1", "type_sentence1"],
|
||||
columns_order=["sentence1", "type_sentence1", "sentence2", "label_id"],
|
||||
column_order=["sentence1", "type_sentence1", "sentence2", "label_id"],
|
||||
operations=ops.Duplicate())
|
||||
dataset = dataset.map(input_columns=["sentence2"], output_columns=["sentence2", "type_sentence2"],
|
||||
columns_order=["sentence1", "type_sentence1", "sentence2", "type_sentence2", "label_id"],
|
||||
column_order=["sentence1", "type_sentence1", "sentence2", "type_sentence2", "label_id"],
|
||||
operations=ops.Duplicate())
|
||||
dataset = dataset.map(input_columns=["type_sentence1"], operations=[lookup, ops.Fill(0)])
|
||||
dataset = dataset.map(input_columns=["type_sentence2"], operations=[lookup, ops.Fill(1)])
|
||||
dataset = dataset.map(input_columns=["type_sentence1", "type_sentence2"], output_columns=["segment_ids"],
|
||||
columns_order=["sentence1", "sentence2", "segment_ids", "label_id"],
|
||||
column_order=["sentence1", "sentence2", "segment_ids", "label_id"],
|
||||
operations=ops.Concatenate())
|
||||
dataset = dataset.map(input_columns=["segment_ids"], operations=ops.PadEnd([max_seq_len], 0))
|
||||
### Generating text_ids
|
||||
dataset = dataset.map(input_columns=["sentence1", "sentence2"], output_columns=["text_ids"],
|
||||
columns_order=["text_ids", "segment_ids", "label_id"],
|
||||
column_order=["text_ids", "segment_ids", "label_id"],
|
||||
operations=ops.Concatenate())
|
||||
dataset = dataset.map(input_columns=["text_ids"], operations=lookup)
|
||||
dataset = dataset.map(input_columns=["text_ids"], operations=ops.PadEnd([max_seq_len], 0))
|
||||
### Generating mask_ids
|
||||
dataset = dataset.map(input_columns=["text_ids"], output_columns=["text_ids", "mask_ids"],
|
||||
columns_order=["text_ids", "mask_ids", "segment_ids", "label_id"], operations=ops.Duplicate())
|
||||
column_order=["text_ids", "mask_ids", "segment_ids", "label_id"], operations=ops.Duplicate())
|
||||
dataset = dataset.map(input_columns=["mask_ids"], operations=ops.Mask(ops.Relational.NE, 0, mstype.int32))
|
||||
dataset = dataset.batch(batch_size, drop_remainder=drop_remainder)
|
||||
return dataset
|
||||
|
|
|
@ -213,7 +213,7 @@ def _get_mindrecord_dataset(directory, train_mode=True, epochs=1, batch_size=100
|
|||
np.array(y).flatten().reshape(batch_size, 39),
|
||||
np.array(z).flatten().reshape(batch_size, 1))),
|
||||
input_columns=['feat_ids', 'feat_vals', 'label'],
|
||||
columns_order=['feat_ids', 'feat_vals', 'label'],
|
||||
column_order=['feat_ids', 'feat_vals', 'label'],
|
||||
num_parallel_workers=8)
|
||||
ds = ds.repeat(epochs)
|
||||
return ds
|
||||
|
@ -261,7 +261,7 @@ def _get_tf_dataset(directory, train_mode=True, epochs=1, batch_size=1000,
|
|||
np.array(y).flatten().reshape(batch_size, 39),
|
||||
np.array(z).flatten().reshape(batch_size, 1))),
|
||||
input_columns=['feat_ids', 'feat_vals', 'label'],
|
||||
columns_order=['feat_ids', 'feat_vals', 'label'],
|
||||
column_order=['feat_ids', 'feat_vals', 'label'],
|
||||
num_parallel_workers=8)
|
||||
ds = ds.repeat(epochs)
|
||||
return ds
|
||||
|
|
|
@ -230,7 +230,7 @@ def _get_tf_dataset(data_dir, train_mode=True, epochs=1, batch_size=1000,
|
|||
|
||||
ds = ds.map(operations=_padding_func(batch_size, manual_shape, target_column),
|
||||
input_columns=['feat_ids', 'feat_vals', 'label'],
|
||||
columns_order=['feat_ids', 'feat_vals', 'label'], num_parallel_workers=8)
|
||||
column_order=['feat_ids', 'feat_vals', 'label'], num_parallel_workers=8)
|
||||
# if train_mode:
|
||||
ds = ds.repeat(epochs)
|
||||
return ds
|
||||
|
@ -270,7 +270,7 @@ def _get_mindrecord_dataset(directory, train_mode=True, epochs=1, batch_size=100
|
|||
ds = ds.batch(int(batch_size / line_per_sample), drop_remainder=True)
|
||||
ds = ds.map(_padding_func(batch_size, manual_shape, target_column),
|
||||
input_columns=['feat_ids', 'feat_vals', 'label'],
|
||||
columns_order=['feat_ids', 'feat_vals', 'label'],
|
||||
column_order=['feat_ids', 'feat_vals', 'label'],
|
||||
num_parallel_workers=8)
|
||||
ds = ds.repeat(epochs)
|
||||
return ds
|
||||
|
|
|
@ -263,7 +263,7 @@ def _get_tf_dataset(data_dir,
|
|||
'multi_doc_ad_topic_id_mask', 'ad_id', 'display_ad_and_is_leak',
|
||||
'display_id', 'is_leak'
|
||||
],
|
||||
columns_order=[
|
||||
column_order=[
|
||||
'label', 'continue_val', 'indicator_id', 'emb_128_id',
|
||||
'emb_64_single_id', 'multi_doc_ad_category_id',
|
||||
'multi_doc_ad_category_id_mask', 'multi_doc_event_entity_id',
|
||||
|
|
|
@ -22,7 +22,7 @@ import mindspore.common.dtype as mstype
|
|||
import mindspore.context as context
|
||||
import mindspore.dataset as de
|
||||
import mindspore.dataset.transforms.c_transforms as C
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
import mindspore.nn as nn
|
||||
from mindspore import Tensor
|
||||
from mindspore.communication.management import init
|
||||
|
|
|
@ -22,7 +22,7 @@ import mindspore.common.dtype as mstype
|
|||
import mindspore.context as context
|
||||
import mindspore.dataset as de
|
||||
import mindspore.dataset.transforms.c_transforms as C
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
import mindspore.nn as nn
|
||||
from mindspore import Tensor
|
||||
from mindspore.communication.management import init
|
||||
|
|
|
@ -57,7 +57,7 @@ def _get_tf_dataset(data_dir, train_mode=True, epochs=1, batch_size=1000,
|
|||
np.array(y).flatten().reshape(batch_size, 39),
|
||||
np.array(z).flatten().reshape(batch_size, 1))),
|
||||
input_columns=['feat_ids', 'feat_vals', 'label'],
|
||||
columns_order=['feat_ids', 'feat_vals', 'label'], num_parallel_workers=8)
|
||||
column_order=['feat_ids', 'feat_vals', 'label'], num_parallel_workers=8)
|
||||
#if train_mode:
|
||||
ds = ds.repeat(epochs)
|
||||
return ds
|
||||
|
@ -97,7 +97,7 @@ def _get_mindrecord_dataset(directory, train_mode=True, epochs=1, batch_size=100
|
|||
np.array(y).flatten().reshape(batch_size, 39),
|
||||
np.array(z).flatten().reshape(batch_size, 1))),
|
||||
input_columns=['feat_ids', 'feat_vals', 'label'],
|
||||
columns_order=['feat_ids', 'feat_vals', 'label'],
|
||||
column_order=['feat_ids', 'feat_vals', 'label'],
|
||||
num_parallel_workers=8)
|
||||
ds = ds.repeat(epochs)
|
||||
return ds
|
||||
|
|
|
@ -22,7 +22,7 @@ from matplotlib.colors import rgb_to_hsv, hsv_to_rgb
|
|||
from PIL import Image
|
||||
import mindspore.dataset as de
|
||||
from mindspore.mindrecord import FileWriter
|
||||
import mindspore.dataset.transforms.vision.c_transforms as C
|
||||
import mindspore.dataset.vision.c_transforms as C
|
||||
from src.config import ConfigYOLOV3ResNet18
|
||||
|
||||
iter_cnt = 0
|
||||
|
@ -305,7 +305,7 @@ def create_yolo_dataset(mindrecord_dir, batch_size=32, repeat_num=10, device_num
|
|||
hwc_to_chw = C.HWC2CHW()
|
||||
ds = ds.map(input_columns=["image", "annotation"],
|
||||
output_columns=["image", "bbox_1", "bbox_2", "bbox_3", "gt_box1", "gt_box2", "gt_box3"],
|
||||
columns_order=["image", "bbox_1", "bbox_2", "bbox_3", "gt_box1", "gt_box2", "gt_box3"],
|
||||
column_order=["image", "bbox_1", "bbox_2", "bbox_3", "gt_box1", "gt_box2", "gt_box3"],
|
||||
operations=compose_map_func, num_parallel_workers=num_parallel_workers)
|
||||
ds = ds.map(input_columns=["image"], operations=hwc_to_chw, num_parallel_workers=num_parallel_workers)
|
||||
ds = ds.batch(batch_size, drop_remainder=True)
|
||||
|
@ -313,6 +313,6 @@ def create_yolo_dataset(mindrecord_dir, batch_size=32, repeat_num=10, device_num
|
|||
else:
|
||||
ds = ds.map(input_columns=["image", "annotation"],
|
||||
output_columns=["image", "image_shape", "annotation"],
|
||||
columns_order=["image", "image_shape", "annotation"],
|
||||
column_order=["image", "image_shape", "annotation"],
|
||||
operations=compose_map_func, num_parallel_workers=num_parallel_workers)
|
||||
return ds
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
"""Dataset module."""
|
||||
from PIL import Image
|
||||
import mindspore.dataset as de
|
||||
import mindspore.dataset.transforms.vision.c_transforms as C
|
||||
import mindspore.dataset.vision.c_transforms as C
|
||||
import numpy as np
|
||||
|
||||
from .ei_dataset import HwVocRawDataset
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
import os
|
||||
import mindspore.common.dtype as mstype
|
||||
import mindspore.dataset.engine as de
|
||||
import mindspore.dataset.transforms.vision.c_transforms as C
|
||||
import mindspore.dataset.vision.c_transforms as C
|
||||
import mindspore.dataset.transforms.c_transforms as C2
|
||||
|
||||
|
||||
|
@ -39,10 +39,10 @@ def create_dataset(dataset_path, do_train, repeat_num=1, batch_size=32):
|
|||
device_num = int(os.getenv("RANK_SIZE"))
|
||||
rank_id = int(os.getenv("RANK_ID"))
|
||||
if device_num == 1:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=device_num, shard_id=rank_id)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=device_num, shard_id=rank_id)
|
||||
|
||||
image_size = 224
|
||||
mean = [0.485 * 255, 0.456 * 255, 0.406 * 255]
|
||||
|
|
|
@ -21,7 +21,7 @@ import mindspore.common.dtype as mstype
|
|||
import mindspore.dataset as dataset
|
||||
import mindspore.dataset.engine as de
|
||||
import mindspore.dataset.transforms.c_transforms as C2
|
||||
import mindspore.dataset.transforms.vision.c_transforms as C
|
||||
import mindspore.dataset.vision.c_transforms as C
|
||||
|
||||
dataset.config.set_seed(1)
|
||||
|
||||
|
@ -43,10 +43,10 @@ def create_dataset(dataset_path, do_train, repeat_num=1, batch_size=32):
|
|||
device_num = int(os.getenv("RANK_SIZE"))
|
||||
rank_id = int(os.getenv("RANK_ID"))
|
||||
if device_num == 1:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=device_num, shard_id=rank_id)
|
||||
ds = de.ImageFolderDataset(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=device_num, shard_id=rank_id)
|
||||
|
||||
image_size = 224
|
||||
mean = [0.485 * 255, 0.456 * 255, 0.406 * 255]
|
||||
|
|
|
@ -21,11 +21,11 @@ import pytest
|
|||
import mindspore.context as context
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.c_transforms as C
|
||||
import mindspore.dataset.transforms.vision.c_transforms as CV
|
||||
import mindspore.dataset.vision.c_transforms as CV
|
||||
import mindspore.nn as nn
|
||||
from mindspore import Tensor
|
||||
from mindspore.common import dtype as mstype
|
||||
from mindspore.dataset.transforms.vision import Inter
|
||||
from mindspore.dataset.vision import Inter
|
||||
from mindspore.nn import Dense, TrainOneStepCell, WithLossCell
|
||||
from mindspore.nn.metrics import Accuracy
|
||||
from mindspore.nn.optim import Momentum
|
||||
|
|
|
@ -17,11 +17,11 @@ import numpy as np
|
|||
|
||||
import mindspore.context as context
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
import mindspore.nn as nn
|
||||
from mindspore.common.api import _executor
|
||||
from mindspore.common.tensor import Tensor
|
||||
from mindspore.dataset.transforms.vision import Inter
|
||||
from mindspore.dataset.vision import Inter
|
||||
from mindspore.ops import operations as P
|
||||
|
||||
context.set_context(mode=context.GRAPH_MODE, device_target="Ascend")
|
||||
|
@ -83,8 +83,6 @@ if __name__ == '__main__':
|
|||
|
||||
|
||||
class dataiter(nn.Cell):
|
||||
def __init__(self):
|
||||
super(dataiter, self).__init__()
|
||||
|
||||
def construct(self):
|
||||
input_, _ = get_next()
|
||||
|
|
|
@ -17,9 +17,9 @@ Produce the dataset
|
|||
"""
|
||||
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as CV
|
||||
import mindspore.dataset.vision.c_transforms as CV
|
||||
import mindspore.dataset.transforms.c_transforms as C
|
||||
from mindspore.dataset.transforms.vision import Inter
|
||||
from mindspore.dataset.vision import Inter
|
||||
from mindspore.common import dtype as mstype
|
||||
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ import os
|
|||
|
||||
import mindspore.common.dtype as mstype
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as CV
|
||||
import mindspore.dataset.vision.c_transforms as CV
|
||||
import mindspore.nn as nn
|
||||
from mindspore import context, Tensor
|
||||
from mindspore.ops import operations as P
|
||||
|
|
|
@ -16,7 +16,7 @@ import os
|
|||
|
||||
import mindspore.common.dtype as mstype
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as CV
|
||||
import mindspore.dataset.vision.c_transforms as CV
|
||||
import mindspore.nn as nn
|
||||
from mindspore import context, Tensor
|
||||
from mindspore.ops import operations as P
|
||||
|
|
|
@ -18,7 +18,7 @@ The VAE interface can be called to construct VAE-GAN network.
|
|||
import os
|
||||
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as CV
|
||||
import mindspore.dataset.vision.c_transforms as CV
|
||||
import mindspore.nn as nn
|
||||
from mindspore import context
|
||||
from mindspore.ops import operations as P
|
||||
|
|
|
@ -15,12 +15,12 @@
|
|||
""" test uncertainty toolbox """
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.c_transforms as C
|
||||
import mindspore.dataset.transforms.vision.c_transforms as CV
|
||||
import mindspore.dataset.vision.c_transforms as CV
|
||||
import mindspore.nn as nn
|
||||
from mindspore import context, Tensor
|
||||
from mindspore.common import dtype as mstype
|
||||
from mindspore.common.initializer import TruncatedNormal
|
||||
from mindspore.dataset.transforms.vision import Inter
|
||||
from mindspore.dataset.vision import Inter
|
||||
from mindspore.nn.probability.toolbox.uncertainty_evaluation import UncertaintyEvaluation
|
||||
from mindspore.train.serialization import load_checkpoint, load_param_into_net
|
||||
|
||||
|
|
|
@ -19,10 +19,10 @@ import argparse
|
|||
import mindspore.context as context
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.c_transforms as C
|
||||
import mindspore.dataset.transforms.vision.c_transforms as CV
|
||||
import mindspore.dataset.vision.c_transforms as CV
|
||||
import mindspore.nn as nn
|
||||
from mindspore.common import dtype as mstype
|
||||
from mindspore.dataset.transforms.vision import Inter
|
||||
from mindspore.dataset.vision import Inter
|
||||
from mindspore.nn.metrics import Accuracy
|
||||
from mindspore.train import Model
|
||||
from mindspore.train.callback import LossMonitor
|
||||
|
|
|
@ -21,7 +21,7 @@ import pytest
|
|||
import mindspore.common.dtype as mstype
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.c_transforms as C
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
import mindspore.nn as nn
|
||||
import mindspore.ops.functional as F
|
||||
|
||||
|
|
|
@ -17,9 +17,9 @@ Produce the dataset
|
|||
"""
|
||||
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as CV
|
||||
import mindspore.dataset.vision.c_transforms as CV
|
||||
import mindspore.dataset.transforms.c_transforms as C
|
||||
from mindspore.dataset.transforms.vision import Inter
|
||||
from mindspore.dataset.vision import Inter
|
||||
from mindspore.common import dtype as mstype
|
||||
|
||||
|
||||
|
|
|
@ -25,8 +25,8 @@ from mindspore import nn, Tensor, context
|
|||
from mindspore.nn.metrics import Accuracy
|
||||
from mindspore.nn.optim import Momentum
|
||||
from mindspore.dataset.transforms import c_transforms as C
|
||||
from mindspore.dataset.transforms.vision import c_transforms as CV
|
||||
from mindspore.dataset.transforms.vision import Inter
|
||||
from mindspore.dataset.vision import c_transforms as CV
|
||||
from mindspore.dataset.vision import Inter
|
||||
from mindspore.common import dtype as mstype
|
||||
from mindspore.common.initializer import TruncatedNormal
|
||||
from mindspore.ops import operations as P
|
||||
|
|
|
@ -24,7 +24,7 @@ from mindspore.train.callback import ModelCheckpoint, CheckpointConfig, LossMoni
|
|||
from mindspore.train.serialization import load_checkpoint, load_param_into_net
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.c_transforms as C
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
import mindspore.nn as nn
|
||||
from mindspore import Tensor
|
||||
from mindspore import context
|
||||
|
|
|
@ -21,7 +21,7 @@ from resnet import resnet50
|
|||
import mindspore.common.dtype as mstype
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.c_transforms as C
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
import mindspore.nn as nn
|
||||
import mindspore.ops.functional as F
|
||||
from mindspore import Tensor
|
||||
|
|
|
@ -22,7 +22,7 @@ from resnet import resnet50
|
|||
import mindspore.common.dtype as mstype
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.c_transforms as C
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
import mindspore.nn as nn
|
||||
import mindspore.ops.functional as F
|
||||
from mindspore import Tensor
|
||||
|
|
|
@ -17,8 +17,9 @@ Testing HWC2CHW op in DE
|
|||
"""
|
||||
import numpy as np
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as c_vision
|
||||
import mindspore.dataset.transforms.vision.py_transforms as py_vision
|
||||
import mindspore.dataset.transforms.py_transforms
|
||||
import mindspore.dataset.vision.c_transforms as c_vision
|
||||
import mindspore.dataset.vision.py_transforms as py_vision
|
||||
from mindspore import log as logger
|
||||
from util import diff_mse, visualize_list, save_and_check_md5
|
||||
|
||||
|
@ -99,8 +100,8 @@ def test_HWC2CHW_comp(plot=False):
|
|||
py_vision.ToTensor(),
|
||||
py_vision.HWC2CHW()
|
||||
]
|
||||
transform = py_vision.ComposeOp(transforms)
|
||||
data2 = data2.map(input_columns=["image"], operations=transform())
|
||||
transform = mindspore.dataset.transforms.py_transforms.Compose(transforms)
|
||||
data2 = data2.map(input_columns=["image"], operations=transform)
|
||||
|
||||
image_c_transposed = []
|
||||
image_py_transposed = []
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
import numpy as np
|
||||
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
from mindspore import log as logger
|
||||
|
||||
DATA_DIR = "../data/dataset/testPK/data"
|
||||
|
@ -46,8 +46,8 @@ def test_apply_generator_case():
|
|||
|
||||
def test_apply_imagefolder_case():
|
||||
# apply dataset map operations
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, num_shards=4, shard_id=3)
|
||||
data2 = ds.ImageFolderDatasetV2(DATA_DIR, num_shards=4, shard_id=3)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, num_shards=4, shard_id=3)
|
||||
data2 = ds.ImageFolderDataset(DATA_DIR, num_shards=4, shard_id=3)
|
||||
|
||||
decode_op = vision.Decode()
|
||||
normalize_op = vision.Normalize([121.0, 115.0, 100.0], [70.0, 68.0, 71.0])
|
||||
|
|
|
@ -17,8 +17,9 @@ Testing AutoContrast op in DE
|
|||
"""
|
||||
import numpy as np
|
||||
import mindspore.dataset.engine as de
|
||||
import mindspore.dataset.transforms.vision.py_transforms as F
|
||||
import mindspore.dataset.transforms.vision.c_transforms as C
|
||||
import mindspore.dataset.transforms.py_transforms
|
||||
import mindspore.dataset.vision.py_transforms as F
|
||||
import mindspore.dataset.vision.c_transforms as C
|
||||
from mindspore import log as logger
|
||||
from util import visualize_list, visualize_one_channel_dataset, diff_mse, save_and_check_md5
|
||||
|
||||
|
@ -35,14 +36,14 @@ def test_auto_contrast_py(plot=False):
|
|||
logger.info("Test AutoContrast Python Op")
|
||||
|
||||
# Original Images
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
|
||||
transforms_original = F.ComposeOp([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.ToTensor()])
|
||||
transforms_original = mindspore.dataset.transforms.py_transforms.Compose([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.ToTensor()])
|
||||
|
||||
ds_original = ds.map(input_columns="image",
|
||||
operations=transforms_original())
|
||||
operations=transforms_original)
|
||||
|
||||
ds_original = ds_original.batch(512)
|
||||
|
||||
|
@ -55,15 +56,16 @@ def test_auto_contrast_py(plot=False):
|
|||
axis=0)
|
||||
|
||||
# AutoContrast Images
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
|
||||
transforms_auto_contrast = F.ComposeOp([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.AutoContrast(cutoff=10.0, ignore=[10, 20]),
|
||||
F.ToTensor()])
|
||||
transforms_auto_contrast = \
|
||||
mindspore.dataset.transforms.py_transforms.Compose([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.AutoContrast(cutoff=10.0, ignore=[10, 20]),
|
||||
F.ToTensor()])
|
||||
|
||||
ds_auto_contrast = ds.map(input_columns="image",
|
||||
operations=transforms_auto_contrast())
|
||||
operations=transforms_auto_contrast)
|
||||
|
||||
ds_auto_contrast = ds_auto_contrast.batch(512)
|
||||
|
||||
|
@ -96,15 +98,15 @@ def test_auto_contrast_c(plot=False):
|
|||
logger.info("Test AutoContrast C Op")
|
||||
|
||||
# AutoContrast Images
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[C.Decode(),
|
||||
C.Resize((224, 224))])
|
||||
python_op = F.AutoContrast(cutoff=10.0, ignore=[10, 20])
|
||||
c_op = C.AutoContrast(cutoff=10.0, ignore=[10, 20])
|
||||
transforms_op = F.ComposeOp([lambda img: F.ToPIL()(img.astype(np.uint8)),
|
||||
python_op,
|
||||
np.array])()
|
||||
transforms_op = mindspore.dataset.transforms.py_transforms.Compose([lambda img: F.ToPIL()(img.astype(np.uint8)),
|
||||
python_op,
|
||||
np.array])
|
||||
|
||||
ds_auto_contrast_py = ds.map(input_columns="image",
|
||||
operations=transforms_op)
|
||||
|
@ -119,7 +121,7 @@ def test_auto_contrast_c(plot=False):
|
|||
image,
|
||||
axis=0)
|
||||
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[C.Decode(),
|
||||
C.Resize((224, 224))])
|
||||
|
@ -159,17 +161,18 @@ def test_auto_contrast_one_channel_c(plot=False):
|
|||
logger.info("Test AutoContrast C Op With One Channel Images")
|
||||
|
||||
# AutoContrast Images
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[C.Decode(),
|
||||
C.Resize((224, 224))])
|
||||
python_op = F.AutoContrast()
|
||||
c_op = C.AutoContrast()
|
||||
# not using F.ToTensor() since it converts to floats
|
||||
transforms_op = F.ComposeOp([lambda img: (np.array(img)[:, :, 0]).astype(np.uint8),
|
||||
F.ToPIL(),
|
||||
python_op,
|
||||
np.array])()
|
||||
transforms_op = mindspore.dataset.transforms.py_transforms.Compose(
|
||||
[lambda img: (np.array(img)[:, :, 0]).astype(np.uint8),
|
||||
F.ToPIL(),
|
||||
python_op,
|
||||
np.array])
|
||||
|
||||
ds_auto_contrast_py = ds.map(input_columns="image",
|
||||
operations=transforms_op)
|
||||
|
@ -184,7 +187,7 @@ def test_auto_contrast_one_channel_c(plot=False):
|
|||
image,
|
||||
axis=0)
|
||||
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[C.Decode(),
|
||||
C.Resize((224, 224)),
|
||||
|
@ -248,7 +251,7 @@ def test_auto_contrast_invalid_ignore_param_c():
|
|||
"""
|
||||
logger.info("Test AutoContrast C Op with invalid ignore parameter")
|
||||
try:
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[C.Decode(),
|
||||
C.Resize((224, 224)),
|
||||
|
@ -260,7 +263,7 @@ def test_auto_contrast_invalid_ignore_param_c():
|
|||
logger.info("Got an exception in DE: {}".format(str(error)))
|
||||
assert "Argument ignore with value 255.5 is not of type" in str(error)
|
||||
try:
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[C.Decode(),
|
||||
C.Resize((224, 224)),
|
||||
|
@ -279,7 +282,7 @@ def test_auto_contrast_invalid_cutoff_param_c():
|
|||
"""
|
||||
logger.info("Test AutoContrast C Op with invalid cutoff parameter")
|
||||
try:
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[C.Decode(),
|
||||
C.Resize((224, 224)),
|
||||
|
@ -291,7 +294,7 @@ def test_auto_contrast_invalid_cutoff_param_c():
|
|||
logger.info("Got an exception in DE: {}".format(str(error)))
|
||||
assert "Input cutoff is not within the required interval of (0 to 100)." in str(error)
|
||||
try:
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[C.Decode(),
|
||||
C.Resize((224, 224)),
|
||||
|
@ -310,22 +313,22 @@ def test_auto_contrast_invalid_ignore_param_py():
|
|||
"""
|
||||
logger.info("Test AutoContrast python Op with invalid ignore parameter")
|
||||
try:
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[F.ComposeOp([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.AutoContrast(ignore=255.5),
|
||||
F.ToTensor()])])
|
||||
operations=[mindspore.dataset.transforms.py_transforms.Compose([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.AutoContrast(ignore=255.5),
|
||||
F.ToTensor()])])
|
||||
except TypeError as error:
|
||||
logger.info("Got an exception in DE: {}".format(str(error)))
|
||||
assert "Argument ignore with value 255.5 is not of type" in str(error)
|
||||
try:
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[F.ComposeOp([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.AutoContrast(ignore=(10, 100)),
|
||||
F.ToTensor()])])
|
||||
operations=[mindspore.dataset.transforms.py_transforms.Compose([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.AutoContrast(ignore=(10, 100)),
|
||||
F.ToTensor()])])
|
||||
except TypeError as error:
|
||||
logger.info("Got an exception in DE: {}".format(str(error)))
|
||||
assert "Argument ignore with value (10,100) is not of type" in str(error)
|
||||
|
@ -337,22 +340,22 @@ def test_auto_contrast_invalid_cutoff_param_py():
|
|||
"""
|
||||
logger.info("Test AutoContrast python Op with invalid cutoff parameter")
|
||||
try:
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[F.ComposeOp([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.AutoContrast(cutoff=-10.0),
|
||||
F.ToTensor()])])
|
||||
operations=[mindspore.dataset.transforms.py_transforms.Compose([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.AutoContrast(cutoff=-10.0),
|
||||
F.ToTensor()])])
|
||||
except ValueError as error:
|
||||
logger.info("Got an exception in DE: {}".format(str(error)))
|
||||
assert "Input cutoff is not within the required interval of (0 to 100)." in str(error)
|
||||
try:
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[F.ComposeOp([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.AutoContrast(cutoff=120.0),
|
||||
F.ToTensor()])])
|
||||
operations=[mindspore.dataset.transforms.py_transforms.Compose([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.AutoContrast(cutoff=120.0),
|
||||
F.ToTensor()])])
|
||||
except ValueError as error:
|
||||
logger.info("Got an exception in DE: {}".format(str(error)))
|
||||
assert "Input cutoff is not within the required interval of (0 to 100)." in str(error)
|
||||
|
|
|
@ -449,6 +449,22 @@ def test_batch_exception_13():
|
|||
logger.info("Got an exception in DE: {}".format(str(e)))
|
||||
assert "shard_id" in str(e)
|
||||
|
||||
# test non-functional parameters
|
||||
try:
|
||||
data1 = data1.batch(batch_size, output_columns="3")
|
||||
sum([1 for _ in data1])
|
||||
|
||||
except ValueError as e:
|
||||
logger.info("Got an exception in DE: {}".format(str(e)))
|
||||
assert "output_columns is currently not implemented." in str(e)
|
||||
|
||||
try:
|
||||
data1 = data1.batch(batch_size, column_order="3")
|
||||
sum([1 for _ in data1])
|
||||
|
||||
except ValueError as e:
|
||||
logger.info("Got an exception in DE: {}".format(str(e)))
|
||||
assert "column_order is currently not implemented." in str(e)
|
||||
|
||||
if __name__ == '__main__':
|
||||
test_batch_01()
|
||||
|
|
|
@ -19,7 +19,7 @@ Testing the bounding box augment op in DE
|
|||
import numpy as np
|
||||
import mindspore.log as logger
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as c_vision
|
||||
import mindspore.dataset.vision.c_transforms as c_vision
|
||||
|
||||
from util import visualize_with_bounding_boxes, InvalidBBoxType, check_bad_bbox, \
|
||||
config_get_set_seed, config_get_set_num_parallel_workers, save_and_check_md5
|
||||
|
@ -51,7 +51,7 @@ def test_bounding_box_augment_with_rotation_op(plot_vis=False):
|
|||
# map to apply ops
|
||||
dataVoc2 = dataVoc2.map(input_columns=["image", "bbox"],
|
||||
output_columns=["image", "bbox"],
|
||||
columns_order=["image", "bbox"],
|
||||
column_order=["image", "bbox"],
|
||||
operations=[test_op])
|
||||
|
||||
filename = "bounding_box_augment_rotation_c_result.npz"
|
||||
|
@ -90,7 +90,7 @@ def test_bounding_box_augment_with_crop_op(plot_vis=False):
|
|||
# map to apply ops
|
||||
dataVoc2 = dataVoc2.map(input_columns=["image", "bbox"],
|
||||
output_columns=["image", "bbox"],
|
||||
columns_order=["image", "bbox"],
|
||||
column_order=["image", "bbox"],
|
||||
operations=[test_op])
|
||||
|
||||
filename = "bounding_box_augment_crop_c_result.npz"
|
||||
|
@ -128,7 +128,7 @@ def test_bounding_box_augment_valid_ratio_c(plot_vis=False):
|
|||
# map to apply ops
|
||||
dataVoc2 = dataVoc2.map(input_columns=["image", "bbox"],
|
||||
output_columns=["image", "bbox"],
|
||||
columns_order=["image", "bbox"],
|
||||
column_order=["image", "bbox"],
|
||||
operations=[test_op]) # Add column for "bbox"
|
||||
|
||||
filename = "bounding_box_augment_valid_ratio_c_result.npz"
|
||||
|
@ -165,7 +165,7 @@ def test_bounding_box_augment_op_coco_c(plot_vis=False):
|
|||
|
||||
dataCoco2 = dataCoco2.map(input_columns=["image", "bbox"],
|
||||
output_columns=["image", "bbox"],
|
||||
columns_order=["image", "bbox"],
|
||||
column_order=["image", "bbox"],
|
||||
operations=[test_op])
|
||||
|
||||
unaugSamp, augSamp = [], []
|
||||
|
@ -197,17 +197,17 @@ def test_bounding_box_augment_valid_edge_c(plot_vis=False):
|
|||
# Add column for "bbox"
|
||||
dataVoc1 = dataVoc1.map(input_columns=["image", "bbox"],
|
||||
output_columns=["image", "bbox"],
|
||||
columns_order=["image", "bbox"],
|
||||
column_order=["image", "bbox"],
|
||||
operations=lambda img, bbox:
|
||||
(img, np.array([[0, 0, img.shape[1], img.shape[0], 0, 0, 0]]).astype(np.float32)))
|
||||
dataVoc2 = dataVoc2.map(input_columns=["image", "bbox"],
|
||||
output_columns=["image", "bbox"],
|
||||
columns_order=["image", "bbox"],
|
||||
column_order=["image", "bbox"],
|
||||
operations=lambda img, bbox:
|
||||
(img, np.array([[0, 0, img.shape[1], img.shape[0], 0, 0, 0]]).astype(np.float32)))
|
||||
dataVoc2 = dataVoc2.map(input_columns=["image", "bbox"],
|
||||
output_columns=["image", "bbox"],
|
||||
columns_order=["image", "bbox"],
|
||||
column_order=["image", "bbox"],
|
||||
operations=[test_op])
|
||||
filename = "bounding_box_augment_valid_edge_c_result.npz"
|
||||
save_and_check_md5(dataVoc2, filename, generate_golden=GENERATE_GOLDEN)
|
||||
|
@ -240,7 +240,7 @@ def test_bounding_box_augment_invalid_ratio_c():
|
|||
# map to apply ops
|
||||
dataVoc2 = dataVoc2.map(input_columns=["image", "bbox"],
|
||||
output_columns=["image", "bbox"],
|
||||
columns_order=["image", "bbox"],
|
||||
column_order=["image", "bbox"],
|
||||
operations=[test_op]) # Add column for "bbox"
|
||||
except ValueError as error:
|
||||
logger.info("Got an exception in DE: {}".format(str(error)))
|
||||
|
|
|
@ -18,7 +18,7 @@ Testing cache operator with mappable datasets
|
|||
import os
|
||||
import pytest
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as c_vision
|
||||
import mindspore.dataset.vision.c_transforms as c_vision
|
||||
from mindspore import log as logger
|
||||
from util import save_and_check_md5
|
||||
|
||||
|
@ -46,7 +46,7 @@ def test_cache_map_basic1():
|
|||
some_cache = ds.DatasetCache(session_id=1, size=0, spilling=True)
|
||||
|
||||
# This DATA_DIR only has 2 images in it
|
||||
ds1 = ds.ImageFolderDatasetV2(dataset_dir=DATA_DIR, cache=some_cache)
|
||||
ds1 = ds.ImageFolderDataset(dataset_dir=DATA_DIR, cache=some_cache)
|
||||
decode_op = c_vision.Decode()
|
||||
ds1 = ds1.map(input_columns=["image"], operations=decode_op)
|
||||
ds1 = ds1.repeat(4)
|
||||
|
@ -75,7 +75,7 @@ def test_cache_map_basic2():
|
|||
some_cache = ds.DatasetCache(session_id=1, size=0, spilling=True)
|
||||
|
||||
# This DATA_DIR only has 2 images in it
|
||||
ds1 = ds.ImageFolderDatasetV2(dataset_dir=DATA_DIR)
|
||||
ds1 = ds.ImageFolderDataset(dataset_dir=DATA_DIR)
|
||||
decode_op = c_vision.Decode()
|
||||
ds1 = ds1.map(input_columns=["image"], operations=decode_op, cache=some_cache)
|
||||
ds1 = ds1.repeat(4)
|
||||
|
@ -104,7 +104,7 @@ def test_cache_map_basic3():
|
|||
some_cache = ds.DatasetCache(session_id=1, size=0, spilling=True)
|
||||
|
||||
# This DATA_DIR only has 2 images in it
|
||||
ds1 = ds.ImageFolderDatasetV2(dataset_dir=DATA_DIR)
|
||||
ds1 = ds.ImageFolderDataset(dataset_dir=DATA_DIR)
|
||||
decode_op = c_vision.Decode()
|
||||
ds1 = ds1.repeat(4)
|
||||
ds1 = ds1.map(input_columns=["image"], operations=decode_op, cache=some_cache)
|
||||
|
@ -128,7 +128,7 @@ def test_cache_map_basic4():
|
|||
some_cache = ds.DatasetCache(session_id=1, size=0, spilling=True)
|
||||
|
||||
# This DATA_DIR only has 2 images in it
|
||||
ds1 = ds.ImageFolderDatasetV2(dataset_dir=DATA_DIR, cache=some_cache)
|
||||
ds1 = ds.ImageFolderDataset(dataset_dir=DATA_DIR, cache=some_cache)
|
||||
decode_op = c_vision.Decode()
|
||||
ds1 = ds1.repeat(4)
|
||||
ds1 = ds1.map(input_columns=["image"], operations=decode_op)
|
||||
|
@ -165,7 +165,7 @@ def test_cache_map_failure1():
|
|||
some_cache = ds.DatasetCache(session_id=1, size=0, spilling=True)
|
||||
|
||||
# This DATA_DIR only has 2 images in it
|
||||
ds1 = ds.ImageFolderDatasetV2(dataset_dir=DATA_DIR, cache=some_cache)
|
||||
ds1 = ds.ImageFolderDataset(dataset_dir=DATA_DIR, cache=some_cache)
|
||||
decode_op = c_vision.Decode()
|
||||
ds1 = ds1.map(input_columns=["image"], operations=decode_op, cache=some_cache)
|
||||
ds1 = ds1.repeat(4)
|
||||
|
|
|
@ -19,7 +19,7 @@ import os
|
|||
import pytest
|
||||
import mindspore.common.dtype as mstype
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as c_vision
|
||||
import mindspore.dataset.vision.c_transforms as c_vision
|
||||
from mindspore import log as logger
|
||||
|
||||
DATA_DIR = ["../data/dataset/test_tf_file_3_images/train-0000-of-0001.data"]
|
||||
|
|
|
@ -17,8 +17,9 @@ Testing CenterCrop op in DE
|
|||
"""
|
||||
import numpy as np
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.transforms.vision.py_transforms as py_vision
|
||||
import mindspore.dataset.transforms.py_transforms
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.py_transforms as py_vision
|
||||
from mindspore import log as logger
|
||||
from util import diff_mse, visualize_list, save_and_check_md5
|
||||
|
||||
|
@ -93,8 +94,8 @@ def test_center_crop_comp(height=375, width=375, plot=False):
|
|||
py_vision.CenterCrop([height, width]),
|
||||
py_vision.ToTensor()
|
||||
]
|
||||
transform = py_vision.ComposeOp(transforms)
|
||||
data2 = data2.map(input_columns=["image"], operations=transform())
|
||||
transform = mindspore.dataset.transforms.py_transforms.Compose(transforms)
|
||||
data2 = data2.map(input_columns=["image"], operations=transform)
|
||||
|
||||
image_c_cropped = []
|
||||
image_py_cropped = []
|
||||
|
@ -123,9 +124,9 @@ def test_crop_grayscale(height=375, width=375):
|
|||
(lambda image: (image.transpose(1, 2, 0) * 255).astype(np.uint8))
|
||||
]
|
||||
|
||||
transform = py_vision.ComposeOp(transforms)
|
||||
transform = mindspore.dataset.transforms.py_transforms.Compose(transforms)
|
||||
data1 = ds.TFRecordDataset(DATA_DIR, SCHEMA_DIR, columns_list=["image"], shuffle=False)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform())
|
||||
data1 = data1.map(input_columns=["image"], operations=transform)
|
||||
|
||||
# If input is grayscale, the output dimensions should be single channel
|
||||
crop_gray = vision.CenterCrop([height, width])
|
||||
|
|
|
@ -17,7 +17,8 @@ import numpy as np
|
|||
import mindspore.common.dtype as mstype
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.c_transforms as C
|
||||
import mindspore.dataset.transforms.vision.py_transforms as F
|
||||
import mindspore.dataset.transforms.py_transforms
|
||||
import mindspore.dataset.vision.py_transforms as F
|
||||
from mindspore import log as logger
|
||||
|
||||
|
||||
|
@ -317,15 +318,15 @@ def test_concat_14():
|
|||
DATA_DIR = "../data/dataset/testPK/data"
|
||||
DATA_DIR2 = "../data/dataset/testImageNetData/train/"
|
||||
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, num_samples=3)
|
||||
data2 = ds.ImageFolderDatasetV2(DATA_DIR2, num_samples=2)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, num_samples=3)
|
||||
data2 = ds.ImageFolderDataset(DATA_DIR2, num_samples=2)
|
||||
|
||||
transforms1 = F.ComposeOp([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.ToTensor()])
|
||||
transforms1 = mindspore.dataset.transforms.py_transforms.Compose([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.ToTensor()])
|
||||
|
||||
data1 = data1.map(input_columns=["image"], operations=transforms1())
|
||||
data2 = data2.map(input_columns=["image"], operations=transforms1())
|
||||
data1 = data1.map(input_columns=["image"], operations=transforms1)
|
||||
data2 = data2.map(input_columns=["image"], operations=transforms1)
|
||||
data3 = data1 + data2
|
||||
|
||||
expected, output = [], []
|
||||
|
@ -351,7 +352,7 @@ def test_concat_15():
|
|||
DATA_DIR = "../data/dataset/testPK/data"
|
||||
DATA_DIR2 = ["../data/dataset/test_tf_file_3_images/train-0000-of-0001.data"]
|
||||
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR)
|
||||
data2 = ds.TFRecordDataset(DATA_DIR2, columns_list=["image"])
|
||||
|
||||
data1 = data1.project(["image"])
|
||||
|
|
|
@ -74,7 +74,7 @@ def test_concatenate_op_multi_input_string():
|
|||
|
||||
concatenate_op = data_trans.Concatenate(0, prepend=prepend_tensor, append=append_tensor)
|
||||
|
||||
data = data.map(input_columns=["col1", "col2"], columns_order=["out1"], output_columns=["out1"],
|
||||
data = data.map(input_columns=["col1", "col2"], column_order=["out1"], output_columns=["out1"],
|
||||
operations=concatenate_op)
|
||||
expected = np.array(["dw", "df", "1", "2", "d", "3", "4", "e", "dwsdf", "df"], dtype='S')
|
||||
for data_row in data:
|
||||
|
@ -89,7 +89,7 @@ def test_concatenate_op_multi_input_numeric():
|
|||
|
||||
concatenate_op = data_trans.Concatenate(0, prepend=prepend_tensor)
|
||||
|
||||
data = data.map(input_columns=["col1", "col2"], columns_order=["out1"], output_columns=["out1"],
|
||||
data = data.map(input_columns=["col1", "col2"], column_order=["out1"], output_columns=["out1"],
|
||||
operations=concatenate_op)
|
||||
expected = np.array([3, 5, 1, 2, 3, 4])
|
||||
for data_row in data:
|
||||
|
|
|
@ -21,8 +21,9 @@ import glob
|
|||
import numpy as np
|
||||
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as c_vision
|
||||
import mindspore.dataset.transforms.vision.py_transforms as py_vision
|
||||
import mindspore.dataset.transforms.py_transforms
|
||||
import mindspore.dataset.vision.c_transforms as c_vision
|
||||
import mindspore.dataset.vision.py_transforms as py_vision
|
||||
from mindspore import log as logger
|
||||
from util import dataset_equal
|
||||
|
||||
|
@ -283,8 +284,8 @@ def test_deterministic_python_seed():
|
|||
py_vision.RandomCrop([512, 512], [200, 200, 200, 200]),
|
||||
py_vision.ToTensor(),
|
||||
]
|
||||
transform = py_vision.ComposeOp(transforms)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform())
|
||||
transform = mindspore.dataset.transforms.py_transforms.Compose(transforms)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform)
|
||||
data1_output = []
|
||||
# config.set_seed() calls random.seed()
|
||||
for data_one in data1.create_dict_iterator(num_epochs=1):
|
||||
|
@ -292,7 +293,7 @@ def test_deterministic_python_seed():
|
|||
|
||||
# Second dataset
|
||||
data2 = ds.TFRecordDataset(DATA_DIR, SCHEMA_DIR, columns_list=["image"], shuffle=False)
|
||||
data2 = data2.map(input_columns=["image"], operations=transform())
|
||||
data2 = data2.map(input_columns=["image"], operations=transform)
|
||||
# config.set_seed() calls random.seed(), resets seed for next dataset iterator
|
||||
ds.config.set_seed(0)
|
||||
|
||||
|
@ -326,8 +327,8 @@ def test_deterministic_python_seed_multi_thread():
|
|||
py_vision.RandomCrop([512, 512], [200, 200, 200, 200]),
|
||||
py_vision.ToTensor(),
|
||||
]
|
||||
transform = py_vision.ComposeOp(transforms)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform(), python_multiprocessing=True)
|
||||
transform = mindspore.dataset.transforms.py_transforms.Compose(transforms)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform, python_multiprocessing=True)
|
||||
data1_output = []
|
||||
# config.set_seed() calls random.seed()
|
||||
for data_one in data1.create_dict_iterator(num_epochs=1):
|
||||
|
@ -336,7 +337,7 @@ def test_deterministic_python_seed_multi_thread():
|
|||
# Second dataset
|
||||
data2 = ds.TFRecordDataset(DATA_DIR, SCHEMA_DIR, columns_list=["image"], shuffle=False)
|
||||
# If seed is set up on constructor
|
||||
data2 = data2.map(input_columns=["image"], operations=transform(), python_multiprocessing=True)
|
||||
data2 = data2.map(input_columns=["image"], operations=transform, python_multiprocessing=True)
|
||||
# config.set_seed() calls random.seed()
|
||||
ds.config.set_seed(0)
|
||||
|
||||
|
|
|
@ -18,8 +18,9 @@ Testing CutOut op in DE
|
|||
import numpy as np
|
||||
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as c
|
||||
import mindspore.dataset.transforms.vision.py_transforms as f
|
||||
import mindspore.dataset.transforms.py_transforms
|
||||
import mindspore.dataset.vision.c_transforms as c
|
||||
import mindspore.dataset.vision.py_transforms as f
|
||||
from mindspore import log as logger
|
||||
from util import visualize_image, visualize_list, diff_mse, save_and_check_md5, \
|
||||
config_get_set_seed, config_get_set_num_parallel_workers
|
||||
|
@ -43,8 +44,8 @@ def test_cut_out_op(plot=False):
|
|||
f.ToTensor(),
|
||||
f.RandomErasing(value='random')
|
||||
]
|
||||
transform_1 = f.ComposeOp(transforms_1)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform_1())
|
||||
transform_1 = mindspore.dataset.transforms.py_transforms.Compose(transforms_1)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform_1)
|
||||
|
||||
# Second dataset
|
||||
data2 = ds.TFRecordDataset(DATA_DIR, SCHEMA_DIR, columns_list=["image"], shuffle=False)
|
||||
|
@ -89,8 +90,8 @@ def test_cut_out_op_multicut(plot=False):
|
|||
f.Decode(),
|
||||
f.ToTensor(),
|
||||
]
|
||||
transform_1 = f.ComposeOp(transforms_1)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform_1())
|
||||
transform_1 = mindspore.dataset.transforms.py_transforms.Compose(transforms_1)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform_1)
|
||||
|
||||
# Second dataset
|
||||
data2 = ds.TFRecordDataset(DATA_DIR, SCHEMA_DIR, columns_list=["image"], shuffle=False)
|
||||
|
@ -144,8 +145,8 @@ def test_cut_out_md5():
|
|||
f.ToTensor(),
|
||||
f.Cutout(100)
|
||||
]
|
||||
transform = f.ComposeOp(transforms)
|
||||
data2 = data2.map(input_columns=["image"], operations=transform())
|
||||
transform = mindspore.dataset.transforms.py_transforms.Compose(transforms)
|
||||
data2 = data2.map(input_columns=["image"], operations=transform)
|
||||
|
||||
# Compare with expected md5 from images
|
||||
filename1 = "cut_out_01_c_result.npz"
|
||||
|
@ -172,8 +173,8 @@ def test_cut_out_comp(plot=False):
|
|||
f.ToTensor(),
|
||||
f.Cutout(200)
|
||||
]
|
||||
transform_1 = f.ComposeOp(transforms_1)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform_1())
|
||||
transform_1 = mindspore.dataset.transforms.py_transforms.Compose(transforms_1)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform_1)
|
||||
|
||||
# Second dataset
|
||||
data2 = ds.TFRecordDataset(DATA_DIR, SCHEMA_DIR, columns_list=["image"], shuffle=False)
|
||||
|
|
|
@ -18,9 +18,9 @@ Testing the CutMixBatch op in DE
|
|||
import numpy as np
|
||||
import pytest
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
import mindspore.dataset.transforms.c_transforms as data_trans
|
||||
import mindspore.dataset.transforms.vision.utils as mode
|
||||
import mindspore.dataset.vision.utils as mode
|
||||
from mindspore import log as logger
|
||||
from util import save_and_check_md5, diff_mse, visualize_list, config_get_set_seed, \
|
||||
config_get_set_num_parallel_workers
|
||||
|
@ -119,11 +119,11 @@ def test_cutmix_batch_success2(plot=False):
|
|||
|
||||
def test_cutmix_batch_success3(plot=False):
|
||||
"""
|
||||
Test CutMixBatch op with default values for alpha and prob on a batch of HWC images on ImageFolderDatasetV2
|
||||
Test CutMixBatch op with default values for alpha and prob on a batch of HWC images on ImageFolderDataset
|
||||
"""
|
||||
logger.info("test_cutmix_batch_success3")
|
||||
|
||||
ds_original = ds.ImageFolderDatasetV2(dataset_dir=DATA_DIR2, shuffle=False)
|
||||
ds_original = ds.ImageFolderDataset(dataset_dir=DATA_DIR2, shuffle=False)
|
||||
decode_op = vision.Decode()
|
||||
ds_original = ds_original.map(input_columns=["image"], operations=[decode_op])
|
||||
ds_original = ds_original.batch(4, pad_info={}, drop_remainder=True)
|
||||
|
@ -136,7 +136,7 @@ def test_cutmix_batch_success3(plot=False):
|
|||
images_original = np.append(images_original, image, axis=0)
|
||||
|
||||
# CutMix Images
|
||||
data1 = ds.ImageFolderDatasetV2(dataset_dir=DATA_DIR2, shuffle=False)
|
||||
data1 = ds.ImageFolderDataset(dataset_dir=DATA_DIR2, shuffle=False)
|
||||
|
||||
decode_op = vision.Decode()
|
||||
data1 = data1.map(input_columns=["image"], operations=[decode_op])
|
||||
|
|
|
@ -18,7 +18,7 @@ import numpy as np
|
|||
import pandas as pd
|
||||
import mindspore.dataset as de
|
||||
from mindspore import log as logger
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
|
||||
|
||||
def test_numpy_slices_list_1():
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
from mindspore import log as logger
|
||||
from mindspore.dataset.transforms.vision import Inter
|
||||
from mindspore.dataset.vision import Inter
|
||||
|
||||
DATA_DIR = "../data/dataset/testCelebAData/"
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# ==============================================================================
|
||||
import numpy as np
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
|
||||
DATA_DIR = "../data/dataset/testCOCO/train/"
|
||||
DATA_DIR_2 = "../data/dataset/testCOCO/train"
|
||||
|
|
|
@ -244,7 +244,7 @@ def test_generator_8():
|
|||
data1 = data1.map(input_columns="col0", output_columns="out0", operations=(lambda x: x * 3),
|
||||
num_parallel_workers=2)
|
||||
data1 = data1.map(input_columns="col1", output_columns=["out1", "out2"], operations=(lambda x: (x * 7, x)),
|
||||
num_parallel_workers=2, columns_order=["out0", "out1", "out2"])
|
||||
num_parallel_workers=2, column_order=["out0", "out1", "out2"])
|
||||
data1 = data1.map(input_columns="out2", output_columns="out2", operations=(lambda x: x + 1),
|
||||
num_parallel_workers=2)
|
||||
|
||||
|
@ -299,7 +299,7 @@ def test_generator_10():
|
|||
# apply dataset operations
|
||||
data1 = ds.GeneratorDataset(generator_mc(2048), ["col0", "col1"])
|
||||
data1 = data1.map(input_columns="col1", output_columns=["out1", "out2"], operations=(lambda x: (x, x * 5)),
|
||||
columns_order=['col0', 'out1', 'out2'], num_parallel_workers=2)
|
||||
column_order=['col0', 'out1', 'out2'], num_parallel_workers=2)
|
||||
|
||||
# Expected column order is |col0|out1|out2|
|
||||
i = 0
|
||||
|
@ -318,17 +318,17 @@ def test_generator_11():
|
|||
Test map column order when len(input_columns) != len(output_columns).
|
||||
"""
|
||||
logger.info("Test map column order when len(input_columns) != len(output_columns), "
|
||||
"and columns_order drops some columns.")
|
||||
"and column_order drops some columns.")
|
||||
|
||||
# apply dataset operations
|
||||
data1 = ds.GeneratorDataset(generator_mc(2048), ["col0", "col1"])
|
||||
data1 = data1.map(input_columns="col1", output_columns=["out1", "out2"], operations=(lambda x: (x, x * 5)),
|
||||
columns_order=['out1', 'out2'], num_parallel_workers=2)
|
||||
column_order=['out1', 'out2'], num_parallel_workers=2)
|
||||
|
||||
# Expected column order is |out1|out2|
|
||||
i = 0
|
||||
for item in data1.create_tuple_iterator(num_epochs=1):
|
||||
# len should be 2 because col0 is dropped (not included in columns_order)
|
||||
# len should be 2 because col0 is dropped (not included in column_order)
|
||||
assert len(item) == 2
|
||||
golden = np.array([[i, i + 1], [i + 2, i + 3]])
|
||||
np.testing.assert_array_equal(item[0], golden)
|
||||
|
@ -358,7 +358,7 @@ def test_generator_12():
|
|||
i = i + 1
|
||||
|
||||
data1 = ds.GeneratorDataset(generator_mc(2048), ["col0", "col1"])
|
||||
data1 = data1.map(operations=(lambda x: (x * 5)), columns_order=["col1", "col0"], num_parallel_workers=2)
|
||||
data1 = data1.map(operations=(lambda x: (x * 5)), column_order=["col1", "col0"], num_parallel_workers=2)
|
||||
|
||||
# Expected column order is |col0|col1|
|
||||
i = 0
|
||||
|
@ -392,7 +392,7 @@ def test_generator_13():
|
|||
i = i + 1
|
||||
|
||||
for item in data1.create_dict_iterator(num_epochs=1): # each data is a dictionary
|
||||
# len should be 2 because col0 is dropped (not included in columns_order)
|
||||
# len should be 2 because col0 is dropped (not included in column_order)
|
||||
assert len(item) == 2
|
||||
golden = np.array([i * 5])
|
||||
np.testing.assert_array_equal(item["out0"], golden)
|
||||
|
@ -508,7 +508,7 @@ def test_generator_error_3():
|
|||
|
||||
for _ in data1:
|
||||
pass
|
||||
assert "When (len(input_columns) != len(output_columns)), columns_order must be specified." in str(info.value)
|
||||
assert "When (len(input_columns) != len(output_columns)), column_order must be specified." in str(info.value)
|
||||
|
||||
|
||||
def test_generator_error_4():
|
||||
|
|
|
@ -27,16 +27,16 @@ CIFAR100_DATA_DIR = "../data/dataset/testCifar100Data"
|
|||
|
||||
|
||||
def test_imagenet_rawdata_dataset_size():
|
||||
ds_total = ds.ImageFolderDatasetV2(IMAGENET_RAWDATA_DIR)
|
||||
ds_total = ds.ImageFolderDataset(IMAGENET_RAWDATA_DIR)
|
||||
assert ds_total.get_dataset_size() == 6
|
||||
|
||||
ds_shard_1_0 = ds.ImageFolderDatasetV2(IMAGENET_RAWDATA_DIR, num_shards=1, shard_id=0)
|
||||
ds_shard_1_0 = ds.ImageFolderDataset(IMAGENET_RAWDATA_DIR, num_shards=1, shard_id=0)
|
||||
assert ds_shard_1_0.get_dataset_size() == 6
|
||||
|
||||
ds_shard_2_0 = ds.ImageFolderDatasetV2(IMAGENET_RAWDATA_DIR, num_shards=2, shard_id=0)
|
||||
ds_shard_2_0 = ds.ImageFolderDataset(IMAGENET_RAWDATA_DIR, num_shards=2, shard_id=0)
|
||||
assert ds_shard_2_0.get_dataset_size() == 3
|
||||
|
||||
ds_shard_3_0 = ds.ImageFolderDatasetV2(IMAGENET_RAWDATA_DIR, num_shards=3, shard_id=0)
|
||||
ds_shard_3_0 = ds.ImageFolderDataset(IMAGENET_RAWDATA_DIR, num_shards=3, shard_id=0)
|
||||
assert ds_shard_3_0.get_dataset_size() == 2
|
||||
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ def test_imagefolder_basic():
|
|||
repeat_count = 1
|
||||
|
||||
# apply dataset operations
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
num_iter = 0
|
||||
|
@ -44,7 +44,7 @@ def test_imagefolder_numsamples():
|
|||
repeat_count = 1
|
||||
|
||||
# apply dataset operations
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, num_samples=10, num_parallel_workers=2)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, num_samples=10, num_parallel_workers=2)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
num_iter = 0
|
||||
|
@ -58,7 +58,7 @@ def test_imagefolder_numsamples():
|
|||
assert num_iter == 10
|
||||
|
||||
random_sampler = ds.RandomSampler(num_samples=3, replacement=True)
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, num_parallel_workers=2, sampler=random_sampler)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, num_parallel_workers=2, sampler=random_sampler)
|
||||
|
||||
num_iter = 0
|
||||
for item in data1.create_dict_iterator(num_epochs=1):
|
||||
|
@ -67,7 +67,7 @@ def test_imagefolder_numsamples():
|
|||
assert num_iter == 3
|
||||
|
||||
random_sampler = ds.RandomSampler(num_samples=3, replacement=False)
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, num_parallel_workers=2, sampler=random_sampler)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, num_parallel_workers=2, sampler=random_sampler)
|
||||
|
||||
num_iter = 0
|
||||
for item in data1.create_dict_iterator(num_epochs=1):
|
||||
|
@ -82,7 +82,7 @@ def test_imagefolder_numshards():
|
|||
repeat_count = 1
|
||||
|
||||
# apply dataset operations
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, num_shards=4, shard_id=3)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, num_shards=4, shard_id=3)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
num_iter = 0
|
||||
|
@ -102,7 +102,7 @@ def test_imagefolder_shardid():
|
|||
repeat_count = 1
|
||||
|
||||
# apply dataset operations
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, num_shards=4, shard_id=1)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, num_shards=4, shard_id=1)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
num_iter = 0
|
||||
|
@ -122,7 +122,7 @@ def test_imagefolder_noshuffle():
|
|||
repeat_count = 1
|
||||
|
||||
# apply dataset operations
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, shuffle=False)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, shuffle=False)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
num_iter = 0
|
||||
|
@ -142,7 +142,7 @@ def test_imagefolder_extrashuffle():
|
|||
repeat_count = 2
|
||||
|
||||
# apply dataset operations
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, shuffle=True)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, shuffle=True)
|
||||
data1 = data1.shuffle(buffer_size=5)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
|
@ -164,7 +164,7 @@ def test_imagefolder_classindex():
|
|||
|
||||
# apply dataset operations
|
||||
class_index = {"class3": 333, "class1": 111}
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, class_indexing=class_index, shuffle=False)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, class_indexing=class_index, shuffle=False)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
golden = [111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
|
||||
|
@ -189,7 +189,7 @@ def test_imagefolder_negative_classindex():
|
|||
|
||||
# apply dataset operations
|
||||
class_index = {"class3": -333, "class1": 111}
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, class_indexing=class_index, shuffle=False)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, class_indexing=class_index, shuffle=False)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
golden = [111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
|
||||
|
@ -214,7 +214,7 @@ def test_imagefolder_extensions():
|
|||
|
||||
# apply dataset operations
|
||||
ext = [".jpg", ".JPEG"]
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, extensions=ext)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, extensions=ext)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
num_iter = 0
|
||||
|
@ -235,7 +235,7 @@ def test_imagefolder_decode():
|
|||
|
||||
# apply dataset operations
|
||||
ext = [".jpg", ".JPEG"]
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, extensions=ext, decode=True)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, extensions=ext, decode=True)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
num_iter = 0
|
||||
|
@ -262,7 +262,7 @@ def test_sequential_sampler():
|
|||
|
||||
# apply dataset operations
|
||||
sampler = ds.SequentialSampler()
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, sampler=sampler)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, sampler=sampler)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
result = []
|
||||
|
@ -283,7 +283,7 @@ def test_random_sampler():
|
|||
|
||||
# apply dataset operations
|
||||
sampler = ds.RandomSampler()
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, sampler=sampler)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, sampler=sampler)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
num_iter = 0
|
||||
|
@ -304,7 +304,7 @@ def test_distributed_sampler():
|
|||
|
||||
# apply dataset operations
|
||||
sampler = ds.DistributedSampler(10, 1)
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, sampler=sampler)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, sampler=sampler)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
num_iter = 0
|
||||
|
@ -325,7 +325,7 @@ def test_pk_sampler():
|
|||
|
||||
# apply dataset operations
|
||||
sampler = ds.PKSampler(3)
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, sampler=sampler)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, sampler=sampler)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
num_iter = 0
|
||||
|
@ -347,7 +347,7 @@ def test_subset_random_sampler():
|
|||
# apply dataset operations
|
||||
indices = [0, 1, 2, 3, 4, 5, 12, 13, 14, 15, 16, 11]
|
||||
sampler = ds.SubsetRandomSampler(indices)
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, sampler=sampler)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, sampler=sampler)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
num_iter = 0
|
||||
|
@ -369,7 +369,7 @@ def test_weighted_random_sampler():
|
|||
# apply dataset operations
|
||||
weights = [1.0, 0.1, 0.02, 0.3, 0.4, 0.05, 1.2, 0.13, 0.14, 0.015, 0.16, 1.1]
|
||||
sampler = ds.WeightedRandomSampler(weights, 11)
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, sampler=sampler)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, sampler=sampler)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
num_iter = 0
|
||||
|
@ -389,7 +389,7 @@ def test_imagefolder_rename():
|
|||
repeat_count = 1
|
||||
|
||||
# apply dataset operations
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, num_samples=10)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, num_samples=10)
|
||||
data1 = data1.repeat(repeat_count)
|
||||
|
||||
num_iter = 0
|
||||
|
@ -421,8 +421,8 @@ def test_imagefolder_zip():
|
|||
repeat_count = 2
|
||||
|
||||
# apply dataset operations
|
||||
data1 = ds.ImageFolderDatasetV2(DATA_DIR, num_samples=10)
|
||||
data2 = ds.ImageFolderDatasetV2(DATA_DIR, num_samples=10)
|
||||
data1 = ds.ImageFolderDataset(DATA_DIR, num_samples=10)
|
||||
data2 = ds.ImageFolderDataset(DATA_DIR, num_samples=10)
|
||||
|
||||
data1 = data1.repeat(repeat_count)
|
||||
# rename dataset2 for no conflict
|
||||
|
|
|
@ -20,9 +20,9 @@ def test_imagefolder_shardings(print_res=False):
|
|||
image_folder_dir = "../data/dataset/testPK/data"
|
||||
|
||||
def sharding_config(num_shards, shard_id, num_samples, shuffle, class_index, repeat_cnt=1):
|
||||
data1 = ds.ImageFolderDatasetV2(image_folder_dir, num_samples=num_samples, num_shards=num_shards,
|
||||
shard_id=shard_id,
|
||||
shuffle=shuffle, class_indexing=class_index, decode=True)
|
||||
data1 = ds.ImageFolderDataset(image_folder_dir, num_samples=num_samples, num_shards=num_shards,
|
||||
shard_id=shard_id,
|
||||
shuffle=shuffle, class_indexing=class_index, decode=True)
|
||||
data1 = data1.repeat(repeat_cnt)
|
||||
res = []
|
||||
for item in data1.create_dict_iterator(num_epochs=1): # each data is a dictionary
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
# limitations under the License.
|
||||
# ==============================================================================
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
|
||||
DATA_DIR = "../data/dataset/testVOC2012"
|
||||
IMAGE_SHAPE = [2268, 2268, 2268, 2268, 642, 607, 561, 596, 612, 2268]
|
||||
|
|
|
@ -18,7 +18,7 @@ Testing Decode op in DE
|
|||
import cv2
|
||||
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
from mindspore import log as logger
|
||||
from util import diff_mse
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
import time
|
||||
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
from mindspore import log as logger
|
||||
|
||||
DATA_DIR = ["../data/dataset/test_tf_file_3_images/train-0000-of-0001.data"]
|
||||
|
|
|
@ -24,7 +24,7 @@ import mindspore.dataset.transforms.c_transforms as ops
|
|||
def compare(array):
|
||||
data = ds.NumpySlicesDataset([array], column_names="x")
|
||||
array = np.array(array)
|
||||
data = data.map(input_columns=["x"], output_columns=["x", "y"], columns_order=["x", "y"],
|
||||
data = data.map(input_columns=["x"], output_columns=["x", "y"], column_order=["x", "y"],
|
||||
operations=ops.Duplicate())
|
||||
for d in data.create_dict_iterator(num_epochs=1):
|
||||
np.testing.assert_array_equal(array, d["x"])
|
||||
|
|
|
@ -21,7 +21,7 @@ import numpy as np
|
|||
import pytest
|
||||
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
from mindspore import log as logger
|
||||
|
||||
DATA_DIR = ["../data/dataset/test_tf_file_3_images/train-0000-of-0001.data"]
|
||||
|
|
|
@ -18,8 +18,9 @@ Testing Equalize op in DE
|
|||
import numpy as np
|
||||
|
||||
import mindspore.dataset.engine as de
|
||||
import mindspore.dataset.transforms.vision.c_transforms as C
|
||||
import mindspore.dataset.transforms.vision.py_transforms as F
|
||||
import mindspore.dataset.transforms.py_transforms
|
||||
import mindspore.dataset.vision.c_transforms as C
|
||||
import mindspore.dataset.vision.py_transforms as F
|
||||
from mindspore import log as logger
|
||||
from util import visualize_list, visualize_one_channel_dataset, diff_mse, save_and_check_md5
|
||||
|
||||
|
@ -36,14 +37,14 @@ def test_equalize_py(plot=False):
|
|||
logger.info("Test Equalize")
|
||||
|
||||
# Original Images
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
|
||||
transforms_original = F.ComposeOp([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.ToTensor()])
|
||||
transforms_original = mindspore.dataset.transforms.py_transforms.Compose([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.ToTensor()])
|
||||
|
||||
ds_original = ds.map(input_columns="image",
|
||||
operations=transforms_original())
|
||||
operations=transforms_original)
|
||||
|
||||
ds_original = ds_original.batch(512)
|
||||
|
||||
|
@ -56,15 +57,15 @@ def test_equalize_py(plot=False):
|
|||
axis=0)
|
||||
|
||||
# Color Equalized Images
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
|
||||
transforms_equalize = F.ComposeOp([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.Equalize(),
|
||||
F.ToTensor()])
|
||||
transforms_equalize = mindspore.dataset.transforms.py_transforms.Compose([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.Equalize(),
|
||||
F.ToTensor()])
|
||||
|
||||
ds_equalize = ds.map(input_columns="image",
|
||||
operations=transforms_equalize())
|
||||
operations=transforms_equalize)
|
||||
|
||||
ds_equalize = ds_equalize.batch(512)
|
||||
|
||||
|
@ -93,7 +94,7 @@ def test_equalize_c(plot=False):
|
|||
logger.info("Test Equalize cpp op")
|
||||
|
||||
# Original Images
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
|
||||
transforms_original = [C.Decode(), C.Resize(size=[224, 224])]
|
||||
|
||||
|
@ -111,7 +112,7 @@ def test_equalize_c(plot=False):
|
|||
axis=0)
|
||||
|
||||
# Equalize Images
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
|
||||
transform_equalize = [C.Decode(), C.Resize(size=[224, 224]),
|
||||
C.Equalize()]
|
||||
|
@ -145,7 +146,7 @@ def test_equalize_py_c(plot=False):
|
|||
logger.info("Test Equalize cpp and python op")
|
||||
|
||||
# equalize Images in cpp
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[C.Decode(), C.Resize((224, 224))])
|
||||
|
||||
|
@ -163,17 +164,17 @@ def test_equalize_py_c(plot=False):
|
|||
axis=0)
|
||||
|
||||
# Equalize images in python
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[C.Decode(), C.Resize((224, 224))])
|
||||
|
||||
transforms_p_equalize = F.ComposeOp([lambda img: img.astype(np.uint8),
|
||||
F.ToPIL(),
|
||||
F.Equalize(),
|
||||
np.array])
|
||||
transforms_p_equalize = mindspore.dataset.transforms.py_transforms.Compose([lambda img: img.astype(np.uint8),
|
||||
F.ToPIL(),
|
||||
F.Equalize(),
|
||||
np.array])
|
||||
|
||||
ds_p_equalize = ds.map(input_columns="image",
|
||||
operations=transforms_p_equalize())
|
||||
operations=transforms_p_equalize)
|
||||
|
||||
ds_p_equalize = ds_p_equalize.batch(512)
|
||||
|
||||
|
@ -204,7 +205,7 @@ def test_equalize_one_channel():
|
|||
c_op = C.Equalize()
|
||||
|
||||
try:
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[C.Decode(),
|
||||
C.Resize((224, 224)),
|
||||
|
@ -253,12 +254,12 @@ def test_equalize_md5_py():
|
|||
logger.info("Test Equalize")
|
||||
|
||||
# First dataset
|
||||
data1 = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
transforms = F.ComposeOp([F.Decode(),
|
||||
F.Equalize(),
|
||||
F.ToTensor()])
|
||||
data1 = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
transforms = mindspore.dataset.transforms.py_transforms.Compose([F.Decode(),
|
||||
F.Equalize(),
|
||||
F.ToTensor()])
|
||||
|
||||
data1 = data1.map(input_columns="image", operations=transforms())
|
||||
data1 = data1.map(input_columns="image", operations=transforms)
|
||||
# Compare with expected md5 from images
|
||||
filename = "equalize_01_result.npz"
|
||||
save_and_check_md5(data1, filename, generate_golden=GENERATE_GOLDEN)
|
||||
|
@ -271,7 +272,7 @@ def test_equalize_md5_c():
|
|||
logger.info("Test Equalize cpp op with md5 check")
|
||||
|
||||
# Generate dataset
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
|
||||
transforms_equalize = [C.Decode(),
|
||||
C.Resize(size=[224, 224]),
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
import pytest
|
||||
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
from mindspore import log as logger
|
||||
|
||||
DATA_DIR = ["../data/dataset/test_tf_file_3_images/train-0000-of-0001.data"]
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
import numpy as np
|
||||
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as cde
|
||||
import mindspore.dataset.vision.c_transforms as cde
|
||||
|
||||
DATA_DIR = ["../data/dataset/test_tf_file_3_images/train-0000-of-0001.data"]
|
||||
SCHEMA_DIR = "../data/dataset/test_tf_file_3_images/datasetSchema.json"
|
||||
|
|
|
@ -18,7 +18,8 @@ import pytest
|
|||
import numpy as np
|
||||
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.py_transforms as vision
|
||||
import mindspore.dataset.transforms.py_transforms
|
||||
import mindspore.dataset.vision.py_transforms as vision
|
||||
from mindspore import log as logger
|
||||
from util import visualize_list, save_and_check_md5
|
||||
|
||||
|
@ -39,8 +40,8 @@ def test_five_crop_op(plot=False):
|
|||
vision.Decode(),
|
||||
vision.ToTensor(),
|
||||
]
|
||||
transform_1 = vision.ComposeOp(transforms_1)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform_1())
|
||||
transform_1 = mindspore.dataset.transforms.py_transforms.Compose(transforms_1)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform_1)
|
||||
|
||||
# Second dataset
|
||||
data2 = ds.TFRecordDataset(DATA_DIR, SCHEMA_DIR, columns_list=["image"], shuffle=False)
|
||||
|
@ -49,8 +50,8 @@ def test_five_crop_op(plot=False):
|
|||
vision.FiveCrop(200),
|
||||
lambda images: np.stack([vision.ToTensor()(image) for image in images]) # 4D stack of 5 images
|
||||
]
|
||||
transform_2 = vision.ComposeOp(transforms_2)
|
||||
data2 = data2.map(input_columns=["image"], operations=transform_2())
|
||||
transform_2 = mindspore.dataset.transforms.py_transforms.Compose(transforms_2)
|
||||
data2 = data2.map(input_columns=["image"], operations=transform_2)
|
||||
|
||||
num_iter = 0
|
||||
for item1, item2 in zip(data1.create_dict_iterator(num_epochs=1), data2.create_dict_iterator(num_epochs=1)):
|
||||
|
@ -83,8 +84,8 @@ def test_five_crop_error_msg():
|
|||
vision.FiveCrop(200),
|
||||
vision.ToTensor()
|
||||
]
|
||||
transform = vision.ComposeOp(transforms)
|
||||
data = data.map(input_columns=["image"], operations=transform())
|
||||
transform = mindspore.dataset.transforms.py_transforms.Compose(transforms)
|
||||
data = data.map(input_columns=["image"], operations=transform)
|
||||
|
||||
with pytest.raises(RuntimeError) as info:
|
||||
for _ in data:
|
||||
|
@ -108,8 +109,8 @@ def test_five_crop_md5():
|
|||
vision.FiveCrop(100),
|
||||
lambda images: np.stack([vision.ToTensor()(image) for image in images]) # 4D stack of 5 images
|
||||
]
|
||||
transform = vision.ComposeOp(transforms)
|
||||
data = data.map(input_columns=["image"], operations=transform())
|
||||
transform = mindspore.dataset.transforms.py_transforms.Compose(transforms)
|
||||
data = data.map(input_columns=["image"], operations=transform)
|
||||
# Compare with expected md5 from images
|
||||
filename = "five_crop_01_result.npz"
|
||||
save_and_check_md5(data, filename, generate_golden=GENERATE_GOLDEN)
|
||||
|
|
|
@ -27,7 +27,7 @@ def test_flat_map_1():
|
|||
|
||||
def flat_map_func(x):
|
||||
data_dir = x[0].item().decode('utf8')
|
||||
d = ds.ImageFolderDatasetV2(data_dir)
|
||||
d = ds.ImageFolderDataset(data_dir)
|
||||
return d
|
||||
|
||||
data = ds.TextFileDataset(DATA_FILE)
|
||||
|
@ -47,7 +47,7 @@ def test_flat_map_2():
|
|||
|
||||
def flat_map_func_1(x):
|
||||
data_dir = x[0].item().decode('utf8')
|
||||
d = ds.ImageFolderDatasetV2(data_dir)
|
||||
d = ds.ImageFolderDataset(data_dir)
|
||||
return d
|
||||
|
||||
def flat_map_func_2(x):
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
import numpy as np
|
||||
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.c_transforms as vision
|
||||
import mindspore.dataset.vision.c_transforms as vision
|
||||
|
||||
CELEBA_DIR = "../data/dataset/testCelebAData"
|
||||
CIFAR10_DIR = "../data/dataset/testCifar10Data"
|
||||
|
@ -75,7 +75,7 @@ def test_get_column_name_generator():
|
|||
|
||||
|
||||
def test_get_column_name_imagefolder():
|
||||
data = ds.ImageFolderDatasetV2(IMAGE_FOLDER_DIR)
|
||||
data = ds.ImageFolderDataset(IMAGE_FOLDER_DIR)
|
||||
assert data.get_col_names() == ["image", "label"]
|
||||
|
||||
|
||||
|
@ -105,7 +105,7 @@ def test_get_column_name_map():
|
|||
assert data.get_col_names() == ["col1", "label"]
|
||||
data = ds.Cifar10Dataset(CIFAR10_DIR)
|
||||
data = data.map(input_columns=["image"], operations=center_crop_op, output_columns=["col1", "col2"],
|
||||
columns_order=["col2", "col1"])
|
||||
column_order=["col2", "col1"])
|
||||
assert data.get_col_names() == ["col2", "col1"]
|
||||
|
||||
|
||||
|
|
|
@ -150,13 +150,13 @@ def test_manifest():
|
|||
|
||||
|
||||
def test_imagefolder():
|
||||
data = ds.ImageFolderDatasetV2("../data/dataset/testPK/data/")
|
||||
data = ds.ImageFolderDataset("../data/dataset/testPK/data/")
|
||||
assert data.get_dataset_size() == 44
|
||||
assert data.num_classes() == 4
|
||||
data = data.shuffle(100)
|
||||
assert data.num_classes() == 4
|
||||
|
||||
data = ds.ImageFolderDatasetV2("../data/dataset/testPK/data/", num_samples=10)
|
||||
data = ds.ImageFolderDataset("../data/dataset/testPK/data/", num_samples=10)
|
||||
assert data.get_dataset_size() == 10
|
||||
assert data.num_classes() == 4
|
||||
|
||||
|
|
|
@ -18,8 +18,9 @@ Testing Invert op in DE
|
|||
import numpy as np
|
||||
|
||||
import mindspore.dataset.engine as de
|
||||
import mindspore.dataset.transforms.vision.py_transforms as F
|
||||
import mindspore.dataset.transforms.vision.c_transforms as C
|
||||
import mindspore.dataset.transforms.py_transforms
|
||||
import mindspore.dataset.vision.py_transforms as F
|
||||
import mindspore.dataset.vision.c_transforms as C
|
||||
from mindspore import log as logger
|
||||
from util import visualize_list, save_and_check_md5, diff_mse
|
||||
|
||||
|
@ -35,14 +36,14 @@ def test_invert_py(plot=False):
|
|||
logger.info("Test Invert Python op")
|
||||
|
||||
# Original Images
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
|
||||
transforms_original = F.ComposeOp([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.ToTensor()])
|
||||
transforms_original = mindspore.dataset.transforms.py_transforms.Compose([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.ToTensor()])
|
||||
|
||||
ds_original = ds.map(input_columns="image",
|
||||
operations=transforms_original())
|
||||
operations=transforms_original)
|
||||
|
||||
ds_original = ds_original.batch(512)
|
||||
|
||||
|
@ -55,15 +56,15 @@ def test_invert_py(plot=False):
|
|||
axis=0)
|
||||
|
||||
# Color Inverted Images
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
|
||||
transforms_invert = F.ComposeOp([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.Invert(),
|
||||
F.ToTensor()])
|
||||
transforms_invert = mindspore.dataset.transforms.py_transforms.Compose([F.Decode(),
|
||||
F.Resize((224, 224)),
|
||||
F.Invert(),
|
||||
F.ToTensor()])
|
||||
|
||||
ds_invert = ds.map(input_columns="image",
|
||||
operations=transforms_invert())
|
||||
operations=transforms_invert)
|
||||
|
||||
ds_invert = ds_invert.batch(512)
|
||||
|
||||
|
@ -92,7 +93,7 @@ def test_invert_c(plot=False):
|
|||
logger.info("Test Invert cpp op")
|
||||
|
||||
# Original Images
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
|
||||
transforms_original = [C.Decode(), C.Resize(size=[224, 224])]
|
||||
|
||||
|
@ -110,7 +111,7 @@ def test_invert_c(plot=False):
|
|||
axis=0)
|
||||
|
||||
# Invert Images
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
|
||||
transform_invert = [C.Decode(), C.Resize(size=[224, 224]),
|
||||
C.Invert()]
|
||||
|
@ -144,7 +145,7 @@ def test_invert_py_c(plot=False):
|
|||
logger.info("Test Invert cpp and python op")
|
||||
|
||||
# Invert Images in cpp
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[C.Decode(), C.Resize((224, 224))])
|
||||
|
||||
|
@ -162,17 +163,17 @@ def test_invert_py_c(plot=False):
|
|||
axis=0)
|
||||
|
||||
# invert images in python
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[C.Decode(), C.Resize((224, 224))])
|
||||
|
||||
transforms_p_invert = F.ComposeOp([lambda img: img.astype(np.uint8),
|
||||
F.ToPIL(),
|
||||
F.Invert(),
|
||||
np.array])
|
||||
transforms_p_invert = mindspore.dataset.transforms.py_transforms.Compose([lambda img: img.astype(np.uint8),
|
||||
F.ToPIL(),
|
||||
F.Invert(),
|
||||
np.array])
|
||||
|
||||
ds_p_invert = ds.map(input_columns="image",
|
||||
operations=transforms_p_invert())
|
||||
operations=transforms_p_invert)
|
||||
|
||||
ds_p_invert = ds_p_invert.batch(512)
|
||||
|
||||
|
@ -203,7 +204,7 @@ def test_invert_one_channel():
|
|||
c_op = C.Invert()
|
||||
|
||||
try:
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = ds.map(input_columns=["image"],
|
||||
operations=[C.Decode(),
|
||||
C.Resize((224, 224)),
|
||||
|
@ -224,13 +225,13 @@ def test_invert_md5_py():
|
|||
logger.info("Test Invert python op with md5 check")
|
||||
|
||||
# Generate dataset
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
|
||||
transforms_invert = F.ComposeOp([F.Decode(),
|
||||
F.Invert(),
|
||||
F.ToTensor()])
|
||||
transforms_invert = mindspore.dataset.transforms.py_transforms.Compose([F.Decode(),
|
||||
F.Invert(),
|
||||
F.ToTensor()])
|
||||
|
||||
data = ds.map(input_columns="image", operations=transforms_invert())
|
||||
data = ds.map(input_columns="image", operations=transforms_invert)
|
||||
# Compare with expected md5 from images
|
||||
filename = "invert_01_result_py.npz"
|
||||
save_and_check_md5(data, filename, generate_golden=GENERATE_GOLDEN)
|
||||
|
@ -243,7 +244,7 @@ def test_invert_md5_c():
|
|||
logger.info("Test Invert cpp op with md5 check")
|
||||
|
||||
# Generate dataset
|
||||
ds = de.ImageFolderDatasetV2(dataset_dir=DATA_DIR, shuffle=False)
|
||||
ds = de.ImageFolderDataset(dataset_dir=DATA_DIR, shuffle=False)
|
||||
|
||||
transforms_invert = [C.Decode(),
|
||||
C.Resize(size=[224, 224]),
|
||||
|
|
|
@ -17,7 +17,8 @@ Testing LinearTransformation op in DE
|
|||
"""
|
||||
import numpy as np
|
||||
import mindspore.dataset as ds
|
||||
import mindspore.dataset.transforms.vision.py_transforms as py_vision
|
||||
import mindspore.dataset.transforms.py_transforms
|
||||
import mindspore.dataset.vision.py_transforms as py_vision
|
||||
from mindspore import log as logger
|
||||
from util import diff_mse, visualize_list, save_and_check_md5
|
||||
|
||||
|
@ -46,11 +47,11 @@ def test_linear_transformation_op(plot=False):
|
|||
py_vision.CenterCrop([height, weight]),
|
||||
py_vision.ToTensor()
|
||||
]
|
||||
transform = py_vision.ComposeOp(transforms)
|
||||
transform = mindspore.dataset.transforms.py_transforms.Compose(transforms)
|
||||
|
||||
# First dataset
|
||||
data1 = ds.TFRecordDataset(DATA_DIR, SCHEMA_DIR, columns_list=["image"], shuffle=False)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform())
|
||||
data1 = data1.map(input_columns=["image"], operations=transform)
|
||||
# Note: if transformation matrix is diagonal matrix with all 1 in diagonal,
|
||||
# the output matrix in expected to be the same as the input matrix.
|
||||
data1 = data1.map(input_columns=["image"],
|
||||
|
@ -58,7 +59,7 @@ def test_linear_transformation_op(plot=False):
|
|||
|
||||
# Second dataset
|
||||
data2 = ds.TFRecordDataset(DATA_DIR, SCHEMA_DIR, columns_list=["image"], shuffle=False)
|
||||
data2 = data2.map(input_columns=["image"], operations=transform())
|
||||
data2 = data2.map(input_columns=["image"], operations=transform)
|
||||
|
||||
image_transformed = []
|
||||
image = []
|
||||
|
@ -96,8 +97,8 @@ def test_linear_transformation_md5():
|
|||
py_vision.ToTensor(),
|
||||
py_vision.LinearTransformation(transformation_matrix, mean_vector)
|
||||
]
|
||||
transform = py_vision.ComposeOp(transforms)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform())
|
||||
transform = mindspore.dataset.transforms.py_transforms.Compose(transforms)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform)
|
||||
|
||||
# Compare with expected md5 from images
|
||||
filename = "linear_transformation_01_result.npz"
|
||||
|
@ -126,8 +127,8 @@ def test_linear_transformation_exception_01():
|
|||
py_vision.ToTensor(),
|
||||
py_vision.LinearTransformation(None, mean_vector)
|
||||
]
|
||||
transform = py_vision.ComposeOp(transforms)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform())
|
||||
transform = mindspore.dataset.transforms.py_transforms.Compose(transforms)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform)
|
||||
except TypeError as e:
|
||||
logger.info("Got an exception in DE: {}".format(str(e)))
|
||||
assert "Argument transformation_matrix with value None is not of type (<class 'numpy.ndarray'>,)" in str(e)
|
||||
|
@ -155,8 +156,8 @@ def test_linear_transformation_exception_02():
|
|||
py_vision.ToTensor(),
|
||||
py_vision.LinearTransformation(transformation_matrix, None)
|
||||
]
|
||||
transform = py_vision.ComposeOp(transforms)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform())
|
||||
transform = mindspore.dataset.transforms.py_transforms.Compose(transforms)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform)
|
||||
except TypeError as e:
|
||||
logger.info("Got an exception in DE: {}".format(str(e)))
|
||||
assert "Argument mean_vector with value None is not of type (<class 'numpy.ndarray'>,)" in str(e)
|
||||
|
@ -185,8 +186,8 @@ def test_linear_transformation_exception_03():
|
|||
py_vision.ToTensor(),
|
||||
py_vision.LinearTransformation(transformation_matrix, mean_vector)
|
||||
]
|
||||
transform = py_vision.ComposeOp(transforms)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform())
|
||||
transform = mindspore.dataset.transforms.py_transforms.Compose(transforms)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform)
|
||||
except ValueError as e:
|
||||
logger.info("Got an exception in DE: {}".format(str(e)))
|
||||
assert "square matrix" in str(e)
|
||||
|
@ -215,8 +216,8 @@ def test_linear_transformation_exception_04():
|
|||
py_vision.ToTensor(),
|
||||
py_vision.LinearTransformation(transformation_matrix, mean_vector)
|
||||
]
|
||||
transform = py_vision.ComposeOp(transforms)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform())
|
||||
transform = mindspore.dataset.transforms.py_transforms.Compose(transforms)
|
||||
data1 = data1.map(input_columns=["image"], operations=transform)
|
||||
except ValueError as e:
|
||||
logger.info("Got an exception in DE: {}".format(str(e)))
|
||||
assert "should match" in str(e)
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue