forked from mindspore-Ecosystem/mindspore
!4609 change unsupport to unsupported
Merge pull request !4609 from chenzhongming/new_master
This commit is contained in:
commit
19192e75e3
|
@ -384,7 +384,7 @@ std::vector<std::pair<KernelGraphPtr, std::vector<AnfNodePtr>>> AscendControlPar
|
|||
ret.emplace_back(target_graph, args);
|
||||
}
|
||||
} else {
|
||||
MS_LOG(EXCEPTION) << "Unsupport call node: " << cnode->DebugString(5);
|
||||
MS_LOG(EXCEPTION) << "Unsupported call node: " << cnode->DebugString(5);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ MPI_Op GetMpiOp(const std::string &op_type) {
|
|||
return MPI_PROD;
|
||||
}
|
||||
|
||||
RAISE_EXCEPTION_WITH_PARAM("unsupport op_type: ", op_type);
|
||||
RAISE_EXCEPTION_WITH_PARAM("Unsupported op_type: ", op_type);
|
||||
return MPI_SUM;
|
||||
}
|
||||
|
||||
|
|
|
@ -159,7 +159,7 @@ void convertDataItem2Scalar(const char *str_data_ptr, const string &tensor_type,
|
|||
} else if (type_id == TypeId::kNumberTypeFloat64) {
|
||||
PrintScalarToString<double>(str_data_ptr, tensor_type, buf);
|
||||
} else {
|
||||
MS_LOG(EXCEPTION) << "Cannot print scalar because of unsupport data type: " << tensor_type << ".";
|
||||
MS_LOG(EXCEPTION) << "Cannot print scalar because of unsupported data type: " << tensor_type << ".";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -49,7 +49,7 @@ int Cast::InferShape(std::vector<lite::tensor::Tensor *> inputs_, std::vector<li
|
|||
return 1;
|
||||
}
|
||||
if (kSupportDataType.find(input->data_type()) == kSupportDataType.end()) {
|
||||
MS_LOG(ERROR) << "Unsupport input data type " << input->data_type();
|
||||
MS_LOG(ERROR) << "Unsupported input data type " << input->data_type();
|
||||
return 1;
|
||||
}
|
||||
if (GetDstT() != kNumberTypeFloat && GetDstT() != kNumberTypeFloat32) {
|
||||
|
|
|
@ -76,7 +76,7 @@ int CastFp16CPUKernel::DoCast(int thread_id) {
|
|||
reinterpret_cast<float *>(output_data) + offset, data_num);
|
||||
break;
|
||||
default:
|
||||
MS_LOG(ERROR) << "Unsupport input data type " << input->data_type();
|
||||
MS_LOG(ERROR) << "Unsupported input data type " << input->data_type();
|
||||
return RET_ERROR;
|
||||
}
|
||||
return RET_OK;
|
||||
|
|
|
@ -139,7 +139,7 @@ def _shape_check(shape_a, shape_b, shape_bias, src_dtype, trans_a, trans_b):
|
|||
if [i for i in shape_bias[-2:]] != [m_shape, n_shape]:
|
||||
raise RuntimeError("non broadcast bias shape must be same as output shape")
|
||||
else:
|
||||
raise RuntimeError("unsupport input shape now for batch bias case")
|
||||
raise RuntimeError("Unsupported input shape now for batch bias case")
|
||||
|
||||
|
||||
def _get_bias(shape_bias):
|
||||
|
|
|
@ -136,7 +136,7 @@ src_dtype: str
|
|||
if [i for i in shape_bias[-2:]] != [m_shape, n_shape]:
|
||||
raise RuntimeError("non broadcast bias shape must be same as output shape")
|
||||
else:
|
||||
raise RuntimeError("unsupport input shape now for batch bias case")
|
||||
raise RuntimeError("Unsupported input shape now for batch bias case")
|
||||
|
||||
|
||||
def _get_bias(shape_bias):
|
||||
|
|
|
@ -141,7 +141,7 @@ def _shape_check(shape_a, shape_b, shape_bias, src_dtype, trans_a, trans_b):
|
|||
if [i for i in shape_bias[-2:]] != [m_shape, n_shape]:
|
||||
raise RuntimeError("non broadcast bias shape must be same as output shape")
|
||||
else:
|
||||
raise RuntimeError("unsupport input shape now for batch bias case")
|
||||
raise RuntimeError("unsupported input shape now for batch bias case")
|
||||
|
||||
|
||||
def _get_bias(shape_bias):
|
||||
|
|
|
@ -427,7 +427,7 @@ class Profiler:
|
|||
logger.error("Fail to get DEVICE_ID, use 0 instead.")
|
||||
|
||||
if device_target and device_target not in ["Davinci", "Ascend", "GPU"]:
|
||||
msg = "Profiling: unsupport backend: %s" % device_target
|
||||
msg = "Profiling: unsupported backend: %s" % device_target
|
||||
raise RuntimeError(msg)
|
||||
|
||||
self._dev_id = dev_id
|
||||
|
|
|
@ -131,7 +131,7 @@ class Model:
|
|||
def _check_kwargs(self, kwargs):
|
||||
for arg in kwargs:
|
||||
if arg not in ['loss_scale_manager', 'keep_batchnorm_fp32']:
|
||||
raise ValueError(f"Unsupport arg '{arg}'")
|
||||
raise ValueError(f"Unsupported arg '{arg}'")
|
||||
|
||||
def _build_train_network(self):
|
||||
"""Build train network"""
|
||||
|
|
|
@ -88,7 +88,7 @@ if __name__ == '__main__':
|
|||
context.set_auto_parallel_context(device_num=device_num, parallel_mode=ParallelMode.DATA_PARALLEL,
|
||||
mirror_mean=True)
|
||||
else:
|
||||
raise ValueError("Unsupport platform.")
|
||||
raise ValueError("Unsupported platform.")
|
||||
|
||||
dataset = create_dataset(cfg.data_path, 1)
|
||||
batch_num = dataset.get_dataset_size()
|
||||
|
|
|
@ -467,7 +467,7 @@ def data_to_mindrecord_byte_image(dataset="coco", is_training=True, prefix="mask
|
|||
if dataset == "coco":
|
||||
image_files, image_anno_dict, masks, masks_shape = create_coco_label(is_training)
|
||||
else:
|
||||
print("Error unsupport other dataset")
|
||||
print("Error unsupported other dataset")
|
||||
return
|
||||
|
||||
maskrcnn_json = {
|
||||
|
|
|
@ -30,31 +30,31 @@ from src.mobilenetV2 import mobilenet_v2
|
|||
parser = argparse.ArgumentParser(description='Image classification')
|
||||
parser.add_argument('--checkpoint_path', type=str, default=None, help='Checkpoint file path')
|
||||
parser.add_argument('--dataset_path', type=str, default=None, help='Dataset path')
|
||||
parser.add_argument('--platform', type=str, default=None, help='run platform')
|
||||
parser.add_argument('--device_targe', type=str, default=None, help='run device_targe')
|
||||
args_opt = parser.parse_args()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
config_platform = None
|
||||
config = None
|
||||
net = None
|
||||
if args_opt.platform == "Ascend":
|
||||
config_platform = config_ascend
|
||||
if args_opt.device_target == "Ascend":
|
||||
config = config_ascend
|
||||
device_id = int(os.getenv('DEVICE_ID'))
|
||||
context.set_context(mode=context.GRAPH_MODE, device_target="Ascend",
|
||||
device_id=device_id, save_graphs=False)
|
||||
net = mobilenet_v2(num_classes=config_platform.num_classes, platform="Ascend")
|
||||
elif args_opt.platform == "GPU":
|
||||
config_platform = config_gpu
|
||||
net = mobilenet_v2(num_classes=config.num_classes, device_target="Ascend")
|
||||
elif args_opt.device_target == "GPU":
|
||||
config = config_gpu
|
||||
context.set_context(mode=context.GRAPH_MODE,
|
||||
device_target="GPU", save_graphs=False)
|
||||
net = mobilenet_v2(num_classes=config_platform.num_classes, platform="GPU")
|
||||
net = mobilenet_v2(num_classes=config.num_classes, device_target="GPU")
|
||||
else:
|
||||
raise ValueError("Unsupport platform.")
|
||||
raise ValueError("Unsupported device_target.")
|
||||
|
||||
loss = nn.SoftmaxCrossEntropyWithLogits(
|
||||
is_grad=False, sparse=True, reduction='mean')
|
||||
|
||||
if args_opt.platform == "Ascend":
|
||||
if args_opt.device_target == "Ascend":
|
||||
net.to_float(mstype.float16)
|
||||
for _, cell in net.cells_and_names():
|
||||
if isinstance(cell, nn.Dense):
|
||||
|
@ -62,9 +62,9 @@ if __name__ == '__main__':
|
|||
|
||||
dataset = create_dataset(dataset_path=args_opt.dataset_path,
|
||||
do_train=False,
|
||||
config=config_platform,
|
||||
platform=args_opt.platform,
|
||||
batch_size=config_platform.batch_size)
|
||||
config=config,
|
||||
device_target=args_opt.device_target,
|
||||
batch_size=config.batch_size)
|
||||
step_size = dataset.get_dataset_size()
|
||||
|
||||
if args_opt.checkpoint_path:
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
# ============================================================================
|
||||
if [ $# != 3 ]
|
||||
then
|
||||
echo "Ascend: sh run_infer.sh [PLATFORM] [DATASET_PATH] [CHECKPOINT_PATH] \
|
||||
GPU: sh run_infer.sh [PLATFORM] [DATASET_PATH] [CHECKPOINT_PATH]"
|
||||
echo "Ascend: sh run_infer.sh [DEVICE_TARGET] [DATASET_PATH] [CHECKPOINT_PATH] \
|
||||
GPU: sh run_infer.sh [DEVICE_TARGET] [DATASET_PATH] [CHECKPOINT_PATH]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -49,7 +49,7 @@ cd ../eval || exit
|
|||
|
||||
# luanch
|
||||
python ${BASEPATH}/../eval.py \
|
||||
--platform=$1 \
|
||||
--device_target=$1 \
|
||||
--dataset_path=$2 \
|
||||
--checkpoint_path=$3 \
|
||||
&> ../infer.log & # dataset val folder path
|
||||
|
|
|
@ -43,7 +43,7 @@ run_ascend()
|
|||
--training_script=${BASEPATH}/../train.py \
|
||||
--dataset_path=$5 \
|
||||
--pre_trained=$6 \
|
||||
--platform=$1 &> ../train.log & # dataset train folder
|
||||
--device_target=$1 &> ../train.log & # dataset train folder
|
||||
}
|
||||
|
||||
run_gpu()
|
||||
|
@ -73,7 +73,7 @@ run_gpu()
|
|||
mpirun -n $2 --allow-run-as-root \
|
||||
python ${BASEPATH}/../train.py \
|
||||
--dataset_path=$4 \
|
||||
--platform=$1 \
|
||||
--device_target=$1 \
|
||||
&> ../train.log & # dataset train folder
|
||||
}
|
||||
|
||||
|
@ -91,6 +91,6 @@ if [ $1 = "Ascend" ] ; then
|
|||
elif [ $1 = "GPU" ] ; then
|
||||
run_gpu "$@"
|
||||
else
|
||||
echo "Unsupported platform."
|
||||
echo "Unsupported device_target."
|
||||
fi;
|
||||
|
||||
|
|
|
@ -21,7 +21,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, platform, repeat_num=1, batch_size=32):
|
||||
def create_dataset(dataset_path, do_train, config, device_target, repeat_num=1, batch_size=32):
|
||||
"""
|
||||
create a train or eval dataset
|
||||
|
||||
|
@ -34,7 +34,7 @@ def create_dataset(dataset_path, do_train, config, platform, repeat_num=1, batch
|
|||
Returns:
|
||||
dataset
|
||||
"""
|
||||
if platform == "Ascend":
|
||||
if device_target == "Ascend":
|
||||
rank_size = int(os.getenv("RANK_SIZE"))
|
||||
rank_id = int(os.getenv("RANK_ID"))
|
||||
if rank_size == 1:
|
||||
|
@ -42,7 +42,7 @@ def create_dataset(dataset_path, do_train, config, platform, repeat_num=1, batch
|
|||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True,
|
||||
num_shards=rank_size, shard_id=rank_id)
|
||||
elif platform == "GPU":
|
||||
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,
|
||||
|
@ -50,7 +50,7 @@ def create_dataset(dataset_path, do_train, config, platform, repeat_num=1, batch
|
|||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
else:
|
||||
raise ValueError("Unsupport platform.")
|
||||
raise ValueError("Unsupported device_target.")
|
||||
|
||||
resize_height = config.image_height
|
||||
resize_width = config.image_width
|
||||
|
|
|
@ -119,15 +119,15 @@ class ConvBNReLU(nn.Cell):
|
|||
>>> ConvBNReLU(16, 256, kernel_size=1, stride=1, groups=1)
|
||||
"""
|
||||
|
||||
def __init__(self, platform, in_planes, out_planes, kernel_size=3, stride=1, groups=1):
|
||||
def __init__(self, device_target, in_planes, out_planes, kernel_size=3, stride=1, groups=1):
|
||||
super(ConvBNReLU, self).__init__()
|
||||
padding = (kernel_size - 1) // 2
|
||||
if groups == 1:
|
||||
conv = nn.Conv2d(in_planes, out_planes, kernel_size, stride, pad_mode='pad', padding=padding)
|
||||
else:
|
||||
if platform == "Ascend":
|
||||
if device_target == "Ascend":
|
||||
conv = DepthwiseConv(in_planes, kernel_size, stride, pad_mode='pad', pad=padding)
|
||||
elif platform == "GPU":
|
||||
elif device_target == "GPU":
|
||||
conv = nn.Conv2d(in_planes, out_planes, kernel_size, stride,
|
||||
group=in_planes, pad_mode='pad', padding=padding)
|
||||
|
||||
|
@ -156,7 +156,7 @@ class InvertedResidual(nn.Cell):
|
|||
>>> ResidualBlock(3, 256, 1, 1)
|
||||
"""
|
||||
|
||||
def __init__(self, platform, inp, oup, stride, expand_ratio):
|
||||
def __init__(self, device_target, inp, oup, stride, expand_ratio):
|
||||
super(InvertedResidual, self).__init__()
|
||||
assert stride in [1, 2]
|
||||
|
||||
|
@ -165,10 +165,10 @@ class InvertedResidual(nn.Cell):
|
|||
|
||||
layers = []
|
||||
if expand_ratio != 1:
|
||||
layers.append(ConvBNReLU(platform, inp, hidden_dim, kernel_size=1))
|
||||
layers.append(ConvBNReLU(device_target, inp, hidden_dim, kernel_size=1))
|
||||
layers.extend([
|
||||
# dw
|
||||
ConvBNReLU(platform, hidden_dim, hidden_dim,
|
||||
ConvBNReLU(device_target, hidden_dim, hidden_dim,
|
||||
stride=stride, groups=hidden_dim),
|
||||
# pw-linear
|
||||
nn.Conv2d(hidden_dim, oup, kernel_size=1,
|
||||
|
@ -204,7 +204,7 @@ class MobileNetV2(nn.Cell):
|
|||
>>> MobileNetV2(num_classes=1000)
|
||||
"""
|
||||
|
||||
def __init__(self, platform, num_classes=1000, width_mult=1.,
|
||||
def __init__(self, device_target, num_classes=1000, width_mult=1.,
|
||||
has_dropout=False, inverted_residual_setting=None, round_nearest=8):
|
||||
super(MobileNetV2, self).__init__()
|
||||
block = InvertedResidual
|
||||
|
@ -227,16 +227,16 @@ class MobileNetV2(nn.Cell):
|
|||
# building first layer
|
||||
input_channel = _make_divisible(input_channel * width_mult, round_nearest)
|
||||
self.out_channels = _make_divisible(last_channel * max(1.0, width_mult), round_nearest)
|
||||
features = [ConvBNReLU(platform, 3, input_channel, stride=2)]
|
||||
features = [ConvBNReLU(device_target, 3, input_channel, stride=2)]
|
||||
# building inverted residual blocks
|
||||
for t, c, n, s in self.cfgs:
|
||||
output_channel = _make_divisible(c * width_mult, round_nearest)
|
||||
for i in range(n):
|
||||
stride = s if i == 0 else 1
|
||||
features.append(block(platform, input_channel, output_channel, stride, expand_ratio=t))
|
||||
features.append(block(device_target, input_channel, output_channel, stride, expand_ratio=t))
|
||||
input_channel = output_channel
|
||||
# building last several layers
|
||||
features.append(ConvBNReLU(platform, input_channel, self.out_channels, kernel_size=1))
|
||||
features.append(ConvBNReLU(device_target, input_channel, self.out_channels, kernel_size=1))
|
||||
# make it nn.CellList
|
||||
self.features = nn.SequentialCell(features)
|
||||
# mobilenet head
|
||||
|
|
|
@ -49,10 +49,10 @@ de.config.set_seed(1)
|
|||
parser = argparse.ArgumentParser(description='Image classification')
|
||||
parser.add_argument('--dataset_path', type=str, default=None, help='Dataset path')
|
||||
parser.add_argument('--pre_trained', type=str, default=None, help='Pretrained checkpoint path')
|
||||
parser.add_argument('--platform', type=str, default=None, help='run platform')
|
||||
parser.add_argument('--device_targe', type=str, default=None, help='run device_targe')
|
||||
args_opt = parser.parse_args()
|
||||
|
||||
if args_opt.platform == "Ascend":
|
||||
if args_opt.device_targe == "Ascend":
|
||||
device_id = int(os.getenv('DEVICE_ID'))
|
||||
rank_id = int(os.getenv('RANK_ID'))
|
||||
rank_size = int(os.getenv('RANK_SIZE'))
|
||||
|
@ -61,7 +61,7 @@ if args_opt.platform == "Ascend":
|
|||
context.set_context(mode=context.GRAPH_MODE,
|
||||
device_target="Ascend",
|
||||
device_id=device_id, save_graphs=False)
|
||||
elif args_opt.platform == "GPU":
|
||||
elif args_opt.device_targe == "GPU":
|
||||
context.set_context(mode=context.GRAPH_MODE,
|
||||
device_target="GPU",
|
||||
save_graphs=False)
|
||||
|
@ -161,13 +161,13 @@ class Monitor(Callback):
|
|||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if args_opt.platform == "GPU":
|
||||
if args_opt.device_targe == "GPU":
|
||||
# train on gpu
|
||||
print("train args: ", args_opt)
|
||||
print("cfg: ", config_gpu)
|
||||
|
||||
# define network
|
||||
net = mobilenet_v2(num_classes=config_gpu.num_classes, platform="GPU")
|
||||
net = mobilenet_v2(num_classes=config_gpu.num_classes, device_targe="GPU")
|
||||
# define loss
|
||||
if config_gpu.label_smooth > 0:
|
||||
loss = CrossEntropyWithLabelSmooth(smooth_factor=config_gpu.label_smooth,
|
||||
|
@ -179,7 +179,7 @@ if __name__ == '__main__':
|
|||
dataset = create_dataset(dataset_path=args_opt.dataset_path,
|
||||
do_train=True,
|
||||
config=config_gpu,
|
||||
platform=args_opt.platform,
|
||||
device_targe=args_opt.device_targe,
|
||||
repeat_num=1,
|
||||
batch_size=config_gpu.batch_size)
|
||||
step_size = dataset.get_dataset_size()
|
||||
|
@ -216,7 +216,7 @@ if __name__ == '__main__':
|
|||
# begin train
|
||||
model.train(epoch_size, dataset, callbacks=cb)
|
||||
print("============== End Training ==============")
|
||||
elif args_opt.platform == "Ascend":
|
||||
elif args_opt.device_targe == "Ascend":
|
||||
# train on ascend
|
||||
print("train args: ", args_opt, "\ncfg: ", config_ascend,
|
||||
"\nparallel args: rank_id {}, device_id {}, rank_size {}".format(rank_id, device_id, rank_size))
|
||||
|
@ -228,7 +228,7 @@ if __name__ == '__main__':
|
|||
init()
|
||||
|
||||
epoch_size = config_ascend.epoch_size
|
||||
net = mobilenet_v2(num_classes=config_ascend.num_classes, platform="Ascend")
|
||||
net = mobilenet_v2(num_classes=config_ascend.num_classes, device_targe="Ascend")
|
||||
net.to_float(mstype.float16)
|
||||
for _, cell in net.cells_and_names():
|
||||
if isinstance(cell, nn.Dense):
|
||||
|
@ -242,7 +242,7 @@ if __name__ == '__main__':
|
|||
dataset = create_dataset(dataset_path=args_opt.dataset_path,
|
||||
do_train=True,
|
||||
config=config_ascend,
|
||||
platform=args_opt.platform,
|
||||
device_targe=args_opt.device_targe,
|
||||
repeat_num=1,
|
||||
batch_size=config_ascend.batch_size)
|
||||
step_size = dataset.get_dataset_size()
|
||||
|
@ -276,4 +276,4 @@ if __name__ == '__main__':
|
|||
cb += [ckpt_cb]
|
||||
model.train(epoch_size, dataset, callbacks=cb)
|
||||
else:
|
||||
raise ValueError("Unsupport platform.")
|
||||
raise ValueError("Unsupported device_targe.")
|
||||
|
|
|
@ -61,7 +61,7 @@ def create_dataset(dataset_path, do_train, config, device_target, repeat_num=1,
|
|||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
else:
|
||||
raise ValueError("Unsupport device_target.")
|
||||
raise ValueError("Unsupported device_target.")
|
||||
|
||||
resize_height = config.image_height
|
||||
|
||||
|
|
|
@ -206,3 +206,5 @@ if __name__ == '__main__':
|
|||
train_on_ascend()
|
||||
elif args_opt.device_target == "GPU":
|
||||
train_on_gpu()
|
||||
else:
|
||||
raise ValueError("Unsupported device target.")
|
||||
|
|
|
@ -30,29 +30,29 @@ from src.mobilenetV3 import mobilenet_v3_large
|
|||
parser = argparse.ArgumentParser(description='Image classification')
|
||||
parser.add_argument('--checkpoint_path', type=str, default=None, help='Checkpoint file path')
|
||||
parser.add_argument('--dataset_path', type=str, default=None, help='Dataset path')
|
||||
parser.add_argument('--platform', type=str, default=None, help='run platform')
|
||||
parser.add_argument('--device_target', type=str, default=None, help='run device_target')
|
||||
args_opt = parser.parse_args()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
config_platform = None
|
||||
if args_opt.platform == "Ascend":
|
||||
config_platform = config_ascend
|
||||
config = None
|
||||
if args_opt.device_target == "Ascend":
|
||||
config = config_ascend
|
||||
device_id = int(os.getenv('DEVICE_ID'))
|
||||
context.set_context(mode=context.GRAPH_MODE, device_target="Ascend",
|
||||
device_id=device_id, save_graphs=False)
|
||||
elif args_opt.platform == "GPU":
|
||||
config_platform = config_gpu
|
||||
elif args_opt.device_target == "GPU":
|
||||
config = config_gpu
|
||||
context.set_context(mode=context.GRAPH_MODE,
|
||||
device_target="GPU", save_graphs=False)
|
||||
else:
|
||||
raise ValueError("Unsupport platform.")
|
||||
raise ValueError("Unsupported device_target.")
|
||||
|
||||
loss = nn.SoftmaxCrossEntropyWithLogits(
|
||||
is_grad=False, sparse=True, reduction='mean')
|
||||
net = mobilenet_v3_large(num_classes=config_platform.num_classes)
|
||||
net = mobilenet_v3_large(num_classes=config.num_classes)
|
||||
|
||||
if args_opt.platform == "Ascend":
|
||||
if args_opt.device_target == "Ascend":
|
||||
net.to_float(mstype.float16)
|
||||
for _, cell in net.cells_and_names():
|
||||
if isinstance(cell, nn.Dense):
|
||||
|
@ -60,9 +60,9 @@ if __name__ == '__main__':
|
|||
|
||||
dataset = create_dataset(dataset_path=args_opt.dataset_path,
|
||||
do_train=False,
|
||||
config=config_platform,
|
||||
platform=args_opt.platform,
|
||||
batch_size=config_platform.batch_size)
|
||||
config=config,
|
||||
device_target=args_opt.device_target,
|
||||
batch_size=config.batch_size)
|
||||
step_size = dataset.get_dataset_size()
|
||||
|
||||
if args_opt.checkpoint_path:
|
||||
|
|
|
@ -15,8 +15,7 @@
|
|||
# ============================================================================
|
||||
if [ $# != 3 ]
|
||||
then
|
||||
echo "Ascend: sh run_infer.sh [PLATFORM] [DATASET_PATH] [CHECKPOINT_PATH] \
|
||||
GPU: sh run_infer.sh [PLATFORM] [DATASET_PATH] [CHECKPOINT_PATH]"
|
||||
echo "GPU: sh run_infer.sh [DEVICE_TARGET] [DATASET_PATH] [CHECKPOINT_PATH]"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
@ -49,7 +48,7 @@ cd ../eval || exit
|
|||
|
||||
# luanch
|
||||
python ${BASEPATH}/../eval.py \
|
||||
--platform=$1 \
|
||||
--device_target=$1 \
|
||||
--dataset_path=$2 \
|
||||
--checkpoint_path=$3 \
|
||||
&> ../infer.log & # dataset val folder path
|
||||
|
|
|
@ -13,36 +13,6 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
# ============================================================================
|
||||
run_ascend()
|
||||
{
|
||||
if [ $2 -lt 1 ] && [ $2 -gt 8 ]
|
||||
then
|
||||
echo "error: DEVICE_NUM=$2 is not in (1-8)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -d $5 ]
|
||||
then
|
||||
echo "error: DATASET_PATH=$5 is not a directory"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BASEPATH=$(cd "`dirname $0`" || exit; pwd)
|
||||
export PYTHONPATH=${BASEPATH}:$PYTHONPATH
|
||||
if [ -d "../train" ];
|
||||
then
|
||||
rm -rf ../train
|
||||
fi
|
||||
mkdir ../train
|
||||
cd ../train || exit
|
||||
python ${BASEPATH}/../src/launch.py \
|
||||
--nproc_per_node=$2 \
|
||||
--visible_devices=$4 \
|
||||
--server_id=$3 \
|
||||
--training_script=${BASEPATH}/../train.py \
|
||||
--dataset_path=$5 \
|
||||
--platform=$1 &> ../train.log & # dataset train folder
|
||||
}
|
||||
|
||||
run_gpu()
|
||||
{
|
||||
|
@ -71,24 +41,21 @@ run_gpu()
|
|||
mpirun -n $2 --allow-run-as-root \
|
||||
python ${BASEPATH}/../train.py \
|
||||
--dataset_path=$4 \
|
||||
--platform=$1 \
|
||||
--device_target=$1 \
|
||||
&> ../train.log & # dataset train folder
|
||||
}
|
||||
|
||||
if [ $# -gt 5 ] || [ $# -lt 4 ]
|
||||
then
|
||||
echo "Usage:\n \
|
||||
Ascend: sh run_train.sh Ascend [DEVICE_NUM] [SERVER_IP(x.x.x.x)] [VISIABLE_DEVICES(0,1,2,3,4,5,6,7)] [DATASET_PATH]\n \
|
||||
GPU: sh run_train.sh GPU [DEVICE_NUM] [VISIABLE_DEVICES(0,1,2,3,4,5,6,7)] [DATASET_PATH]\n \
|
||||
"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $1 = "Ascend" ] ; then
|
||||
run_ascend "$@"
|
||||
elif [ $1 = "GPU" ] ; then
|
||||
if [ $1 = "GPU" ] ; then
|
||||
run_gpu "$@"
|
||||
else
|
||||
echo "not support platform"
|
||||
echo "Unsupported device_target"
|
||||
fi;
|
||||
|
||||
|
|
|
@ -17,24 +17,6 @@ network config setting, will be used in train.py and eval.py
|
|||
"""
|
||||
from easydict import EasyDict as ed
|
||||
|
||||
config_ascend = ed({
|
||||
"num_classes": 1000,
|
||||
"image_height": 224,
|
||||
"image_width": 224,
|
||||
"batch_size": 256,
|
||||
"epoch_size": 200,
|
||||
"warmup_epochs": 4,
|
||||
"lr": 0.4,
|
||||
"momentum": 0.9,
|
||||
"weight_decay": 4e-5,
|
||||
"label_smooth": 0.1,
|
||||
"loss_scale": 1024,
|
||||
"save_checkpoint": True,
|
||||
"save_checkpoint_epochs": 1,
|
||||
"keep_checkpoint_max": 200,
|
||||
"save_checkpoint_path": "./checkpoint",
|
||||
})
|
||||
|
||||
config_gpu = ed({
|
||||
"num_classes": 1000,
|
||||
"image_height": 224,
|
||||
|
|
|
@ -15,14 +15,13 @@
|
|||
"""
|
||||
create train or eval dataset.
|
||||
"""
|
||||
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.transforms.c_transforms as C2
|
||||
|
||||
|
||||
def create_dataset(dataset_path, do_train, config, platform, repeat_num=1, batch_size=32):
|
||||
def create_dataset(dataset_path, do_train, config, device_target, repeat_num=1, batch_size=32):
|
||||
"""
|
||||
create a train or eval dataset
|
||||
|
||||
|
@ -35,15 +34,7 @@ def create_dataset(dataset_path, do_train, config, platform, repeat_num=1, batch
|
|||
Returns:
|
||||
dataset
|
||||
"""
|
||||
if platform == "Ascend":
|
||||
rank_size = int(os.getenv("RANK_SIZE"))
|
||||
rank_id = int(os.getenv("RANK_ID"))
|
||||
if rank_size == 1:
|
||||
ds = de.ImageFolderDatasetV2(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)
|
||||
elif platform == "GPU":
|
||||
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,
|
||||
|
@ -51,7 +42,7 @@ def create_dataset(dataset_path, do_train, config, platform, repeat_num=1, batch
|
|||
else:
|
||||
ds = de.ImageFolderDatasetV2(dataset_path, num_parallel_workers=8, shuffle=True)
|
||||
else:
|
||||
raise ValueError("Unsupport platform.")
|
||||
raise ValueError("Unsupported device_target.")
|
||||
|
||||
resize_height = config.image_height
|
||||
resize_width = config.image_width
|
||||
|
|
|
@ -22,7 +22,6 @@ import numpy as np
|
|||
from mindspore import context
|
||||
from mindspore import Tensor
|
||||
from mindspore import nn
|
||||
from mindspore.parallel._auto_parallel_context import auto_parallel_context
|
||||
from mindspore.nn.optim.momentum import Momentum
|
||||
from mindspore.nn.loss import SoftmaxCrossEntropyWithLogits
|
||||
from mindspore.nn.loss.loss import _Loss
|
||||
|
@ -38,7 +37,7 @@ from mindspore.communication.management import init, get_group_size, get_rank
|
|||
|
||||
from src.dataset import create_dataset
|
||||
from src.lr_generator import get_lr
|
||||
from src.config import config_gpu, config_ascend
|
||||
from src.config import config_gpu
|
||||
from src.mobilenetV3 import mobilenet_v3_large
|
||||
|
||||
random.seed(1)
|
||||
|
@ -48,10 +47,10 @@ de.config.set_seed(1)
|
|||
parser = argparse.ArgumentParser(description='Image classification')
|
||||
parser.add_argument('--dataset_path', type=str, default=None, help='Dataset path')
|
||||
parser.add_argument('--pre_trained', type=str, default=None, help='Pretrained checkpoint path')
|
||||
parser.add_argument('--platform', type=str, default=None, help='run platform')
|
||||
parser.add_argument('--device_target', type=str, default=None, help='run device_target')
|
||||
args_opt = parser.parse_args()
|
||||
|
||||
if args_opt.platform == "Ascend":
|
||||
if args_opt.device_target == "Ascend":
|
||||
device_id = int(os.getenv('DEVICE_ID'))
|
||||
rank_id = int(os.getenv('RANK_ID'))
|
||||
rank_size = int(os.getenv('RANK_SIZE'))
|
||||
|
@ -61,7 +60,7 @@ if args_opt.platform == "Ascend":
|
|||
device_target="Ascend",
|
||||
device_id=device_id,
|
||||
save_graphs=False)
|
||||
elif args_opt.platform == "GPU":
|
||||
elif args_opt.device_target == "GPU":
|
||||
context.set_context(mode=context.GRAPH_MODE,
|
||||
device_target="GPU",
|
||||
save_graphs=False)
|
||||
|
@ -70,7 +69,7 @@ elif args_opt.platform == "GPU":
|
|||
parallel_mode=ParallelMode.DATA_PARALLEL,
|
||||
mirror_mean=True)
|
||||
else:
|
||||
raise ValueError("Unsupport platform.")
|
||||
raise ValueError("Unsupported device_target.")
|
||||
|
||||
|
||||
class CrossEntropyWithLabelSmooth(_Loss):
|
||||
|
@ -161,7 +160,7 @@ class Monitor(Callback):
|
|||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if args_opt.platform == "GPU":
|
||||
if args_opt.device_target == "GPU":
|
||||
# train on gpu
|
||||
print("train args: ", args_opt)
|
||||
print("cfg: ", config_gpu)
|
||||
|
@ -180,7 +179,7 @@ if __name__ == '__main__':
|
|||
dataset = create_dataset(dataset_path=args_opt.dataset_path,
|
||||
do_train=True,
|
||||
config=config_gpu,
|
||||
platform=args_opt.platform,
|
||||
device_target=args_opt.device_target,
|
||||
repeat_num=1,
|
||||
batch_size=config_gpu.batch_size)
|
||||
step_size = dataset.get_dataset_size()
|
||||
|
@ -213,64 +212,3 @@ if __name__ == '__main__':
|
|||
cb += [ckpt_cb]
|
||||
# begine train
|
||||
model.train(epoch_size, dataset, callbacks=cb)
|
||||
elif args_opt.platform == "Ascend":
|
||||
# train on ascend
|
||||
print("train args: ", args_opt, "\ncfg: ", config_ascend,
|
||||
"\nparallel args: rank_id {}, device_id {}, rank_size {}".format(rank_id, device_id, rank_size))
|
||||
|
||||
if run_distribute:
|
||||
context.set_auto_parallel_context(device_num=rank_size, parallel_mode=ParallelMode.DATA_PARALLEL,
|
||||
parameter_broadcast=True, mirror_mean=True)
|
||||
auto_parallel_context().set_all_reduce_fusion_split_indices([140])
|
||||
init()
|
||||
|
||||
epoch_size = config_ascend.epoch_size
|
||||
net = mobilenet_v3_large(num_classes=config_ascend.num_classes)
|
||||
net.to_float(mstype.float16)
|
||||
for _, cell in net.cells_and_names():
|
||||
if isinstance(cell, nn.Dense):
|
||||
cell.to_float(mstype.float32)
|
||||
if config_ascend.label_smooth > 0:
|
||||
loss = CrossEntropyWithLabelSmooth(
|
||||
smooth_factor=config_ascend.label_smooth, num_classes=config.num_classes)
|
||||
else:
|
||||
loss = SoftmaxCrossEntropyWithLogits(
|
||||
is_grad=False, sparse=True, reduction='mean')
|
||||
dataset = create_dataset(dataset_path=args_opt.dataset_path,
|
||||
do_train=True,
|
||||
config=config_ascend,
|
||||
platform=args_opt.platform,
|
||||
repeat_num=1,
|
||||
batch_size=config_ascend.batch_size)
|
||||
step_size = dataset.get_dataset_size()
|
||||
if args_opt.pre_trained:
|
||||
param_dict = load_checkpoint(args_opt.pre_trained)
|
||||
load_param_into_net(net, param_dict)
|
||||
|
||||
loss_scale = FixedLossScaleManager(
|
||||
config_ascend.loss_scale, drop_overflow_update=False)
|
||||
lr = Tensor(get_lr(global_step=0,
|
||||
lr_init=0,
|
||||
lr_end=0,
|
||||
lr_max=config_ascend.lr,
|
||||
warmup_epochs=config_ascend.warmup_epochs,
|
||||
total_epochs=epoch_size,
|
||||
steps_per_epoch=step_size))
|
||||
opt = Momentum(filter(lambda x: x.requires_grad, net.get_parameters()), lr, config_ascend.momentum,
|
||||
config_ascend.weight_decay, config_ascend.loss_scale)
|
||||
|
||||
model = Model(net, loss_fn=loss, optimizer=opt,
|
||||
loss_scale_manager=loss_scale)
|
||||
|
||||
cb = None
|
||||
if rank_id == 0:
|
||||
cb = [Monitor(lr_init=lr.asnumpy())]
|
||||
if config_ascend.save_checkpoint:
|
||||
config_ck = CheckpointConfig(save_checkpoint_steps=config_ascend.save_checkpoint_epochs * step_size,
|
||||
keep_checkpoint_max=config_ascend.keep_checkpoint_max)
|
||||
ckpt_cb = ModelCheckpoint(
|
||||
prefix="mobilenetV3", directory=config_ascend.save_checkpoint_path, config=config_ck)
|
||||
cb += [ckpt_cb]
|
||||
model.train(epoch_size, dataset, callbacks=cb)
|
||||
else:
|
||||
raise Exception
|
||||
|
|
|
@ -176,7 +176,7 @@ class Model:
|
|||
def _check_kwargs(self, kwargs):
|
||||
for arg in kwargs:
|
||||
if arg not in ['loss_scale_manager', 'keep_batchnorm_fp32']:
|
||||
raise ValueError(f"Unsupport arg '{arg}'")
|
||||
raise ValueError(f"Unsupported arg '{arg}'")
|
||||
|
||||
def _build_train_network(self):
|
||||
"""Build train network"""
|
||||
|
|
|
@ -1085,7 +1085,7 @@ Status DvppJsonConfigParser::InitWithJsonConfigImp(const std::string &json_confi
|
|||
return FAILED;
|
||||
}
|
||||
} else {
|
||||
MSI_LOG_ERROR << "Unsupport op name " << op_name << ", expect resize, crop or crop_and_paste";
|
||||
MSI_LOG_ERROR << "Unsupported op name " << op_name << ", expect resize, crop or crop_and_paste";
|
||||
return FAILED;
|
||||
}
|
||||
return SUCCESS;
|
||||
|
|
|
@ -169,7 +169,7 @@ class Model:
|
|||
def _check_kwargs(self, kwargs):
|
||||
for arg in kwargs:
|
||||
if arg not in ['loss_scale_manager', 'keep_batchnorm_fp32']:
|
||||
raise ValueError(f"Unsupport arg '{arg}'")
|
||||
raise ValueError(f"Unsupported arg '{arg}'")
|
||||
|
||||
def _build_train_network(self):
|
||||
"""Build train network"""
|
||||
|
|
Loading…
Reference in New Issue