pytorch

Форк
0
/
optimizer_context.py 
53 строки · 1.4 Кб
1
## @package optimizer_context
2
# Module caffe2.python.optimizer_context
3

4

5

6

7

8
from caffe2.python import context
9
from caffe2.python.modifier_context import (
10
    ModifierContext, UseModifierBase)
11

12

13
DEFAULT_OPTIM = 'DEFAULT'
14

15

16
class OptimizerContext(ModifierContext, context.DefaultManaged):
17
    """
18
    provide context to allow param_info to have different optimizers
19
    """
20

21
    def has_optimizer(self, name):
22
        return self._has_modifier(name)
23

24
    def get_optimizer(self, name):
25
        assert self.has_optimizer(name), (
26
            "{} optimizer is not provided!".format(name))
27
        return self._get_modifier(name)
28

29

30
class UseOptimizer(UseModifierBase):
31
    '''
32
    context class to allow setting the current context.
33
    Example usage with brew:
34
        - with UseOptimizer(optim):
35
            brew.func
36
        - with UseOptimizer({'WEIGHT': weight_optim}):
37
            brew.func
38
        - with UseOptimizer({'DEFAULT': optim, 'BIAS': bias_optim,
39
                                'WEIGHT': weight_optim}):
40
            brew.func
41
        - with UseOptimizer(optim1):
42
            brew.func
43
            with UseOptimizer(optim2):
44
                brew.func
45

46
    Example usage with layer:
47
        optimizers = {'optim1': optim1, 'optim2': optim2}
48
        with Optimizers(optimizers):
49
            optim = OptimizerContext.current().get_optimizer('optim1')
50
            layer(optim=optim)
51
    '''
52
    def _context_class(self):
53
        return OptimizerContext
54

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.