mirror of
				https://github.com/PaddlePaddle/PaddleOCR.git
				synced 2025-10-31 17:59:11 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			120 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # copyright (c) 2020 PaddlePaddle Authors. All Rights Reserve.
 | |
| #
 | |
| # 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.
 | |
| 
 | |
| from __future__ import absolute_import
 | |
| from __future__ import division
 | |
| from __future__ import print_function
 | |
| from __future__ import unicode_literals
 | |
| 
 | |
| from paddle import optimizer as optim
 | |
| 
 | |
| 
 | |
| class Momentum(object):
 | |
|     """
 | |
|     Simple Momentum optimizer with velocity state.
 | |
|     Args:
 | |
|         learning_rate (float|Variable) - The learning rate used to update parameters.
 | |
|             Can be a float value or a Variable with one float value as data element.
 | |
|         momentum (float) - Momentum factor.
 | |
|         regularization (WeightDecayRegularizer, optional) - The strategy of regularization.
 | |
|     """
 | |
| 
 | |
|     def __init__(self, learning_rate, momentum, weight_decay=None, **args):
 | |
|         super(Momentum, self).__init__()
 | |
|         self.learning_rate = learning_rate
 | |
|         self.momentum = momentum
 | |
|         self.weight_decay = weight_decay
 | |
| 
 | |
|     def __call__(self, parameters):
 | |
|         opt = optim.Momentum(
 | |
|             learning_rate=self.learning_rate,
 | |
|             momentum=self.momentum,
 | |
|             parameters=parameters,
 | |
|             weight_decay=self.weight_decay)
 | |
|         return opt
 | |
| 
 | |
| 
 | |
| class Adam(object):
 | |
|     def __init__(self,
 | |
|                  learning_rate=0.001,
 | |
|                  beta1=0.9,
 | |
|                  beta2=0.999,
 | |
|                  epsilon=1e-08,
 | |
|                  parameter_list=None,
 | |
|                  weight_decay=None,
 | |
|                  grad_clip=None,
 | |
|                  name=None,
 | |
|                  lazy_mode=False,
 | |
|                  **kwargs):
 | |
|         self.learning_rate = learning_rate
 | |
|         self.beta1 = beta1
 | |
|         self.beta2 = beta2
 | |
|         self.epsilon = epsilon
 | |
|         self.parameter_list = parameter_list
 | |
|         self.learning_rate = learning_rate
 | |
|         self.weight_decay = weight_decay
 | |
|         self.grad_clip = grad_clip
 | |
|         self.name = name
 | |
|         self.lazy_mode = lazy_mode
 | |
| 
 | |
|     def __call__(self, parameters):
 | |
|         opt = optim.Adam(
 | |
|             learning_rate=self.learning_rate,
 | |
|             beta1=self.beta1,
 | |
|             beta2=self.beta2,
 | |
|             epsilon=self.epsilon,
 | |
|             weight_decay=self.weight_decay,
 | |
|             grad_clip=self.grad_clip,
 | |
|             name=self.name,
 | |
|             lazy_mode=self.lazy_mode,
 | |
|             parameters=parameters)
 | |
|         return opt
 | |
| 
 | |
| 
 | |
| class RMSProp(object):
 | |
|     """
 | |
|     Root Mean Squared Propagation (RMSProp) is an unpublished, adaptive learning rate method.
 | |
|     Args:
 | |
|         learning_rate (float|Variable) - The learning rate used to update parameters.
 | |
|             Can be a float value or a Variable with one float value as data element.
 | |
|         momentum (float) - Momentum factor.
 | |
|         rho (float) - rho value in equation.
 | |
|         epsilon (float) - avoid division by zero, default is 1e-6.
 | |
|         regularization (WeightDecayRegularizer, optional) - The strategy of regularization.
 | |
|     """
 | |
| 
 | |
|     def __init__(self,
 | |
|                  learning_rate,
 | |
|                  momentum,
 | |
|                  rho=0.95,
 | |
|                  epsilon=1e-6,
 | |
|                  weight_decay=None,
 | |
|                  **args):
 | |
|         super(RMSProp, self).__init__()
 | |
|         self.learning_rate = learning_rate
 | |
|         self.momentum = momentum
 | |
|         self.rho = rho
 | |
|         self.epsilon = epsilon
 | |
|         self.weight_decay = weight_decay
 | |
| 
 | |
|     def __call__(self, parameters):
 | |
|         opt = optim.RMSProp(
 | |
|             learning_rate=self.learning_rate,
 | |
|             momentum=self.momentum,
 | |
|             rho=self.rho,
 | |
|             epsilon=self.epsilon,
 | |
|             weight_decay=self.weight_decay,
 | |
|             parameters=parameters)
 | |
|         return opt
 | 
