From 4050ca0e52e0e636c2af0e94439714b576141ce1 Mon Sep 17 00:00:00 2001 From: LoneRanger <836253168@qq.com> Date: Wed, 8 Mar 2023 16:48:13 +0800 Subject: [PATCH] remove entry_attr.py and evaluatory.py in fluid (#51330) * move entry_attr * remove evaluator * fix evaluator --- python/paddle/fluid/__init__.py | 1 - python/paddle/fluid/entry_attr.py | 74 ------------------ python/paddle/fluid/evaluator.py | 120 ------------------------------ python/paddle/fluid/io.py | 1 - 4 files changed, 196 deletions(-) delete mode 100644 python/paddle/fluid/entry_attr.py delete mode 100644 python/paddle/fluid/evaluator.py diff --git a/python/paddle/fluid/__init__.py b/python/paddle/fluid/__init__.py index 82bd5cd621..ce1d92c309 100644 --- a/python/paddle/fluid/__init__.py +++ b/python/paddle/fluid/__init__.py @@ -51,7 +51,6 @@ from .data import * from . import trainer_desc from . import io -from . import evaluator from . import initializer from .initializer import set_global_initializer from . import layers diff --git a/python/paddle/fluid/entry_attr.py b/python/paddle/fluid/entry_attr.py deleted file mode 100644 index 29ab37a3f3..0000000000 --- a/python/paddle/fluid/entry_attr.py +++ /dev/null @@ -1,74 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle 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. - -__all__ = ['ProbabilityEntry', 'CountFilterEntry'] - - -class EntryAttr: - """ - Examples: - .. code-block:: python - - import paddle.fluid as fluid - """ - - def __init__(self): - self._name = None - - def _to_attr(self): - """ - Returns the attributes of this parameter. - - Returns: - Parameter attributes(map): The attributes of this parameter. - """ - raise NotImplementedError("EntryAttr is base class") - - -class ProbabilityEntry(EntryAttr): - def __init__(self, probability): - super().__init__() - - if not isinstance(probability, float): - raise ValueError("probability must be a float in (0,1)") - - if probability <= 0 or probability >= 1: - raise ValueError("probability must be a float in (0,1)") - - self._name = "probability_entry" - self._probability = probability - - def _to_attr(self): - return ":".join([self._name, str(self._probability)]) - - -class CountFilterEntry(EntryAttr): - def __init__(self, count_filter): - super().__init__() - - if not isinstance(count_filter, int): - raise ValueError( - "count_filter must be a valid integer greater than 0" - ) - - if count_filter < 0: - raise ValueError( - "count_filter must be a valid integer greater or equal than 0" - ) - - self._name = "count_filter_entry" - self._count_filter = count_filter - - def _to_attr(self): - return ":".join([self._name, str(self._count_filter)]) diff --git a/python/paddle/fluid/evaluator.py b/python/paddle/fluid/evaluator.py deleted file mode 100644 index a4d80ecbfe..0000000000 --- a/python/paddle/fluid/evaluator.py +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright (c) 2018 PaddlePaddle 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. - -import warnings -import numpy as np - -import paddle -from . import layers -from .framework import Program, Variable, program_guard -from . import unique_name -from .layer_helper import LayerHelper - - -def _clone_var_(block, var): - assert isinstance(var, Variable) - return block.create_var( - name=var.name, - shape=var.shape, - dtype=var.dtype, - type=var.type, - lod_level=var.lod_level, - persistable=True, - ) - - -class Evaluator: - """ - Warning: better to use the fluid.metrics.* things, more - flexible support via pure Python and Operator, and decoupled - with executor. Short doc are intended to urge new user - start from Metrics. - - Base Class for all evaluators. - - Args: - name(str): The name of evaluator. such as, "accuracy". Used for generate - temporary variable name. - main_program(Program, optional): The evaluator should be added to this - main_program. Default default_main_program() - startup_program(Program, optional):The parameter should be added to this - startup_program. Default default_startup_program() - - Attributes: - states(list): The list of state variables. states will be reset to zero - when `reset` is invoked. - metrics(list): The list of metrics variables. They will be calculate - every mini-batch - """ - - def __init__(self, name, **kwargs): - warnings.warn( - "The %s is deprecated, because maintain a modified program inside evaluator cause bug easily, please use fluid.metrics.%s instead." - % (self.__class__.__name__, self.__class__.__name__), - Warning, - ) - self.states = [] - self.metrics = [] - self.helper = LayerHelper(name, **kwargs) - - def reset(self, executor, reset_program=None): - """ - reset metric states at the begin of each pass/user specified batch - - Args: - executor(Executor|ParallelExecutor): a executor for executing the reset_program - reset_program(Program): a single Program for reset process - """ - if reset_program is None: - reset_program = Program() - - with program_guard(main_program=reset_program): - for var in self.states: - assert isinstance(var, Variable) - g_var = _clone_var_(reset_program.current_block(), var) - layers.fill_constant( - shape=g_var.shape, value=0.0, dtype=g_var.dtype, out=g_var - ) - - executor.run(reset_program) - - def eval(self, executor, eval_program=None): - """ - Evaluate the statistics merged by multiple mini-batches. - Args: - executor(Executor|ParallelExecutor): a executor for executing the eval_program - eval_program(Program): a single Program for eval process - """ - raise NotImplementedError() - - def _create_state(self, suffix, dtype, shape): - """ - Create state variable. - - Args: - suffix(str): the state suffix. - dtype(str|core.VarDesc.VarType): the state data type - shape(tuple|list): the shape of state - - Returns: State variable - - """ - state = self.helper.create_variable( - name="_".join([unique_name.generate(self.helper.name), suffix]), - persistable=True, - dtype=dtype, - shape=shape, - ) - self.states.append(state) - return state diff --git a/python/paddle/fluid/io.py b/python/paddle/fluid/io.py index bd5049e74f..f61b4bbe23 100644 --- a/python/paddle/fluid/io.py +++ b/python/paddle/fluid/io.py @@ -27,7 +27,6 @@ import math import paddle from paddle.fluid import layers from paddle.fluid.executor import Executor, global_scope -from paddle.fluid.evaluator import Evaluator from paddle.fluid.framework import ( Program, Parameter, -- GitLab