support multy node training and remove code

This commit is contained in:
zhouyaqiang 2020-07-29 16:55:48 +08:00
parent 1b69923472
commit b0004a1791
3 changed files with 6 additions and 80 deletions

View File

@ -5,8 +5,7 @@ This is an example of training DeepLabV3 with PASCAL VOC 2012 dataset in MindSpo
## Requirements
- Install [MindSpore](https://www.mindspore.cn/install/en).
- Download the VOC 2012 dataset for training.
- We need to run `./src/remove_gt_colormap.py` to remove the label colormap.
- Download the VOC 2012 dataset for training.
``` bash
python remove_gt_colormap.py --original_gt_folder GT_FOLDER --output_dir OUTPUT_DIR

View File

@ -26,6 +26,7 @@ DATA_DIR=$2
export MINDSPORE_HCCL_CONFIG_PATH=$1
export RANK_TABLE_FILE=$1
export RANK_SIZE=8
export DEVICE_NUM=8
PATH_CHECKPOINT=""
if [ $# == 3 ]
then
@ -37,11 +38,13 @@ avg_core_per_rank=`expr $cores \/ $RANK_SIZE`
core_gap=`expr $avg_core_per_rank \- 1`
echo "avg_core_per_rank" $avg_core_per_rank
echo "core_gap" $core_gap
for((i=0;i<RANK_SIZE;i++))
export SERVER_ID=0
rank_start=$((DEVICE_NUM * SERVER_ID))
for((i=0;i<DEVICE_NUM;i++))
do
start=`expr $i \* $avg_core_per_rank`
export DEVICE_ID=$i
export RANK_ID=$i
export RANK_ID=$((rank_start + i))
export DEPLOY_MODE=0
export GE_USE_STATIC_MEMORY=1
end=`expr $start \+ $core_gap`

View File

@ -1,76 +0,0 @@
# Copyright 2020 The Huawei Authors All Rights Reserved.
#
# 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.
# ==============================================================================
"""Removes the color map from segmentation annotations.
Removes the color map from the ground truth segmentation annotations and save
the results to output_dir.
"""
import glob
import argparse
import os.path
import numpy as np
from PIL import Image
def _remove_colormap(filename):
"""Removes the color map from the annotation.
Args:
filename: Ground truth annotation filename.
Returns:
Annotation without color map.
"""
return np.array(Image.open(filename))
def _save_annotation(annotation, filename):
"""Saves the annotation as png file.
Args:
annotation: Segmentation annotation.
filename: Output filename.
"""
pil_image = Image.fromarray(annotation.astype(dtype=np.uint8))
pil_image.save(filename, 'PNG')
def main():
parser = argparse.ArgumentParser(description="Demo of argparse")
parser.add_argument('--original_gt_folder', type=str, default='./VOCdevkit/VOC2012/SegmentationClass',
help='Original ground truth annotations.')
parser.add_argument('--segmentation_format', type=str, default='png',
help='Segmentation format.')
parser.add_argument('--output_dir', type=str, default='./VOCdevkit/VOC2012/SegmentationClassRaw',
help='folder to save modified ground truth annotations.')
args = parser.parse_args()
# Create the output directory if not exists.
if not os.path.isdir(args.output_dir):
os.mkdir(args.output_dir)
annotations = glob.glob(os.path.join(args.original_gt_folder,
'*.' + args.segmentation_format))
for annotation in annotations:
raw_annotation = _remove_colormap(annotation)
filename = os.path.basename(annotation)[:-4]
_save_annotation(raw_annotation,
os.path.join(
args.output_dir,
filename + '.' + args.segmentation_format))
if __name__ == '__main__':
main()