提交 d3af460c authored 作者: Olivier Delalleau's avatar Olivier Delalleau

Fixed bug recently introduced with Modes; removed mode.default_mode (use config.mode instead)

上级 f6518a45
...@@ -232,32 +232,36 @@ predefined_modes = {'FAST_COMPILE': FAST_COMPILE, ...@@ -232,32 +232,36 @@ predefined_modes = {'FAST_COMPILE': FAST_COMPILE,
'FAST_RUN_NOGC':FAST_RUN_NOGC, 'FAST_RUN_NOGC':FAST_RUN_NOGC,
'SANITY_CHECK': SANITY_CHECK} 'SANITY_CHECK': SANITY_CHECK}
instanciated_default_mode=None
def get_mode(string): def get_mode(string):
if string is None: if string is None:
return get_default_mode() string = config.mode
if not isinstance(string, str): return string #it is hopefully already a mode... if not isinstance(string, str): return string #it is hopefully already a mode...
if not predefined_modes.has_key(string):
raise Exception("No predefixed mode exist for string: %s"%string)
return predefined_modes[string]
instanciated_default_mode=None
def get_default_mode():
global instanciated_default_mode global instanciated_default_mode
if config.mode in ['Mode','ProfileMode','DebugMode']: if string in ['Mode','ProfileMode','DebugMode']:
if instanciated_default_mode: if instanciated_default_mode:
return instanciated_default_mode return instanciated_default_mode
#need to import later to break circular dependency. #need to import later to break circular dependency.
from profilemode import ProfileMode,prof_mode_instance_to_print from profilemode import ProfileMode,prof_mode_instance_to_print
from debugmode import DebugMode from debugmode import DebugMode
instanciated_default_mode = eval(config.mode+'(linker=config.linker, optimizer=config.optimizer)') instanciated_default_mode = eval(string+'(linker=config.linker, optimizer=config.optimizer)')
#must tell python to print the summary at the end. #must tell python to print the summary at the end.
if config.mode == 'ProfileMode': if string == 'ProfileMode':
prof_mode_instance_to_print.append(instanciated_default_mode) prof_mode_instance_to_print.append(instanciated_default_mode)
return instanciated_default_mode return instanciated_default_mode
return get_mode(config.mode)
default_mode = config.mode if not predefined_modes.has_key(string):
raise Exception("No predefined mode exist for string: %s"%string)
return predefined_modes[string]
def get_default_mode():
return get_mode(None)
# Removed: use config.mode instead.
#default_mode = config.mode
def register_mode(name, mode): def register_mode(name, mode):
"""Add a `Mode` which can be referred to by `name` in `function`.""" """Add a `Mode` which can be referred to by `name` in `function`."""
......
...@@ -276,7 +276,9 @@ def test_bench_elemwise(n_iter=1000, **kwargs): ...@@ -276,7 +276,9 @@ def test_bench_elemwise(n_iter=1000, **kwargs):
theano.sandbox.cuda.use() theano.sandbox.cuda.use()
debug=False debug=False
if theano.compile.default_mode=="DEBUG_MODE": debug=True if isinstance(theano.compile.mode.get_default_mode(),
theano.compile.debugmode.DebugMode):
debug=True
# get symbolic train set # get symbolic train set
s_lr = theano.tensor.fscalar() s_lr = theano.tensor.fscalar()
......
...@@ -2413,10 +2413,6 @@ def test_autocast(): ...@@ -2413,10 +2413,6 @@ def test_autocast():
ac.__exit__() ac.__exit__()
if __name__ == '__main__': if __name__ == '__main__':
if len(sys.argv) >= 2 and sys.argv[1] == 'OPT':
default_mode = compile.Mode(linker = 'c&py',
optimizer = 'fast_run')
sys.argv[1:] = sys.argv[2:]
if 1: if 1:
unittest.main() unittest.main()
else: else:
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论