diff --git a/dygraph/paddleseg/core/val.py b/dygraph/paddleseg/core/val.py index 256270338a56ce321ade0adab4e979140358dd65..936b257664380dbc0fbb8867a589b8461fd61335 100644 --- a/dygraph/paddleseg/core/val.py +++ b/dygraph/paddleseg/core/val.py @@ -17,10 +17,9 @@ import os import numpy as np import tqdm import cv2 -from paddle.fluid.dygraph.base import to_variable -import paddle.fluid as fluid -import paddle.nn.functional as F import paddle +import paddle.nn.functional as F +from paddle import to_variable import paddleseg.utils.logger as logger from paddleseg.utils import ConfusionMatrix @@ -34,7 +33,7 @@ def evaluate(model, ignore_index=255, iter_id=None): ckpt_path = os.path.join(model_dir, 'model') - para_state_dict, opti_state_dict = fluid.load_dygraph(ckpt_path) + para_state_dict, opti_state_dict = paddle.load(ckpt_path) model.set_dict(para_state_dict) model.eval() diff --git a/dygraph/paddleseg/cvlibs/param_init.py b/dygraph/paddleseg/cvlibs/param_init.py index 495a47c189b8204a260014de4ca23300b7cbcc23..664a5cdd63ccef0c8c79b944f0a0d888e03a5185 100644 --- a/dygraph/paddleseg/cvlibs/param_init.py +++ b/dygraph/paddleseg/cvlibs/param_init.py @@ -12,19 +12,19 @@ # See the License for the specific language governing permissions and # limitations under the License. -import paddle.fluid as fluid +import paddle.nn as nn def constant_init(param, **kwargs): - initializer = fluid.initializer.Constant(**kwargs) + initializer = nn.initializer.Constant(**kwargs) initializer(param, param.block) def normal_init(param, **kwargs): - initializer = fluid.initializer.Normal(**kwargs) + initializer = nn.initializer.Normal(**kwargs) initializer(param, param.block) def msra_init(param, **kwargs): - initializer = fluid.initializer.MSRA(**kwargs) + initializer = nn.initializer.MSRA(**kwargs) initializer(param, param.block) diff --git a/dygraph/paddleseg/datasets/dataset.py b/dygraph/paddleseg/datasets/dataset.py index 30af28c3d03c43194e4d58e267aa8ed6c46c8156..e0d22ffe8ab2062b76bd176359e4784f4d065ee8 100644 --- a/dygraph/paddleseg/datasets/dataset.py +++ b/dygraph/paddleseg/datasets/dataset.py @@ -14,7 +14,7 @@ import os -import paddle.fluid as fluid +import paddle import numpy as np from PIL import Image @@ -23,7 +23,7 @@ from paddleseg.transforms import Compose @manager.DATASETS.add_component -class Dataset(fluid.io.Dataset): +class Dataset(paddle.io.Dataset): """Pass in a custom dataset that conforms to the format. Args: diff --git a/dygraph/paddleseg/models/losses/cross_entroy_loss.py b/dygraph/paddleseg/models/losses/cross_entroy_loss.py index c9f49bcd4e84527ea812a608c3fb1e29de6416aa..919bb3f334fdb5fd528b17a21594c5a9d01c18b3 100644 --- a/dygraph/paddleseg/models/losses/cross_entroy_loss.py +++ b/dygraph/paddleseg/models/losses/cross_entroy_loss.py @@ -15,7 +15,6 @@ import paddle from paddle import nn import paddle.nn.functional as F -import paddle.fluid as fluid from paddleseg.cvlibs import manager ''' @@ -107,34 +106,15 @@ class CrossEntropyLoss(nn.Layer): if len(label.shape) != len(logit.shape): label = paddle.unsqueeze(label, 1) - # logit = paddle.transpose(logit, [0, 2, 3, 1]) - # label = paddle.transpose(label, [0, 2, 3, 1]) - # loss = F.softmax_with_cross_entropy( - # logit, label, ignore_index=self.ignore_index, axis=-1) - # loss = paddle.reduce_mean(loss) + logit = paddle.transpose(logit, [0, 2, 3, 1]) + label = paddle.transpose(label, [0, 2, 3, 1]) + loss = F.softmax_with_cross_entropy( + logit, label, ignore_index=self.ignore_index, axis=-1) - # mask = label != self.ignore_index - # mask = paddle.cast(mask, 'float32') - # avg_loss = loss / (paddle.mean(mask) + self.EPS) - - # label.stop_gradient = True - # mask.stop_gradient = True - # return avg_loss - - logit = fluid.layers.transpose(logit, [0, 2, 3, 1]) - label = fluid.layers.transpose(label, [0, 2, 3, 1]) mask = label != self.ignore_index - mask = fluid.layers.cast(mask, 'float32') - loss, probs = fluid.layers.softmax_with_cross_entropy( - logit, - label, - ignore_index=self.ignore_index, - return_softmax=True, - axis=-1) - + mask = paddle.cast(mask, 'float32') loss = loss * mask - avg_loss = fluid.layers.mean(loss) / ( - fluid.layers.mean(mask) + self.EPS) + avg_loss = paddle.reduce_mean(loss) / (paddle.mean(mask) + self.EPS) label.stop_gradient = True mask.stop_gradient = True diff --git a/dygraph/paddleseg/utils/get_environ_info.py b/dygraph/paddleseg/utils/get_environ_info.py index 7d789f4d60e875fd11514fa13b901885be7b0024..71d3655402d3cb802a5fd643e148bbca556c1cb4 100644 --- a/dygraph/paddleseg/utils/get_environ_info.py +++ b/dygraph/paddleseg/utils/get_environ_info.py @@ -19,8 +19,8 @@ import subprocess import glob import paddle -import paddle.fluid as fluid import cv2 +from paddle.distributed import ParallelEnv IS_WINDOWS = sys.platform == 'win32' @@ -96,13 +96,14 @@ def get_environ_info(): env_info['Python'] = sys.version.replace('\n', '') + # todo is_compiled_with_cuda() has not been moved compiled_with_cuda = paddle.fluid.is_compiled_with_cuda() env_info['Paddle compiled with cuda'] = compiled_with_cuda if compiled_with_cuda: cuda_home = _find_cuda_home() env_info['NVCC'] = _get_nvcc_info(cuda_home) - gpu_nums = fluid.core.get_cuda_device_count() + gpu_nums = ParallelEnv().nranks env_info['GPUs used'] = gpu_nums env_info['CUDA_VISIBLE_DEVICES'] = os.environ.get( 'CUDA_VISIBLE_DEVICES') diff --git a/dygraph/paddleseg/utils/logger.py b/dygraph/paddleseg/utils/logger.py index 015948f65090e40895f6d4a72a75a11f2b155447..36ffbc788880064f85285a8ffd3202310c9ecef7 100644 --- a/dygraph/paddleseg/utils/logger.py +++ b/dygraph/paddleseg/utils/logger.py @@ -16,7 +16,7 @@ import time import os import sys -from paddle.fluid.dygraph.parallel import ParallelEnv +from paddle.distributed import ParallelEnv levels = {0: 'ERROR', 1: 'WARNING', 2: 'INFO', 3: 'DEBUG'} log_level = 2 diff --git a/dygraph/paddleseg/utils/utils.py b/dygraph/paddleseg/utils/utils.py index e7e3e8e871a0d1338bd6339e53eacc5d52308391..54526013ce36db1a46a3668454e031c509cc3cf4 100644 --- a/dygraph/paddleseg/utils/utils.py +++ b/dygraph/paddleseg/utils/utils.py @@ -14,11 +14,12 @@ import contextlib import os -import numpy as np import math + +import numpy as np import cv2 import tempfile -import paddle.fluid as fluid +import paddle from urllib.parse import urlparse, unquote import filelock @@ -74,10 +75,7 @@ def load_pretrained_model(model, pretrained_model): if os.path.exists(pretrained_model): ckpt_path = os.path.join(pretrained_model, 'model') - try: - para_state_dict, _ = fluid.load_dygraph(ckpt_path) - except: - para_state_dict = fluid.load_program_state(pretrained_model) + para_state_dict, _ = paddle.load(ckpt_path) model_state_dict = model.state_dict() keys = model_state_dict.keys() @@ -115,7 +113,7 @@ def resume(model, optimizer, resume_model): if os.path.exists(resume_model): resume_model = os.path.normpath(resume_model) ckpt_path = os.path.join(resume_model, 'model') - para_state_dict, opti_state_dict = fluid.load_dygraph(ckpt_path) + para_state_dict, opti_state_dict = paddle.load(ckpt_path) model.set_dict(para_state_dict) optimizer.set_dict(opti_state_dict) epoch = resume_model.split('_')[-1]